Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用express和mongoose的Node.js restful Web服务。路由不工作_Javascript_Node.js_Rest_Api_Express - Fatal编程技术网

Javascript 使用express和mongoose的Node.js restful Web服务。路由不工作

Javascript 使用express和mongoose的Node.js restful Web服务。路由不工作,javascript,node.js,rest,api,express,Javascript,Node.js,Rest,Api,Express,根据本教程,我正在尝试构建一个RESTful Web服务: 它无法向我返回一个无法获取/报告错误。。。 我正在尝试学习node.js,但我在任何地方都找不到错误,而且我尝试的一切都不起作用 另外,当我调用服务器时,它会到达index.js,它会打印一个“嘿”。这不是应该先到达server.js吗 这是我的密码: Server.js var express = require('express'), app = express(), port = process.env.PORT || 3000

根据本教程,我正在尝试构建一个RESTful Web服务:

它无法向我返回一个无法获取/报告错误。。。 我正在尝试学习node.js,但我在任何地方都找不到错误,而且我尝试的一切都不起作用

另外,当我调用服务器时,它会到达index.js,它会打印一个“嘿”。这不是应该先到达server.js吗

这是我的密码:

Server.js

var express = require('express'),
app = express(),
port = process.env.PORT || 3000,
mongoose = require('mongoose'),
Report = require('./api/models/reportModel.js'),
bodyParser = require('body-parser');

mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost/server');


app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());


var routes = require('./api/routes/reportRoute.js');
routes(app);



app.listen(port);


console.log('Report RESTful API server started on: ' + port);
reportRoute.js

  'use strict';
  module.exports = function(app) {
  var reports = require('../controllers/reportController.js');


    // report Routes
  app.route('/reports')
    .get(reports.list_all_reports)
    .post(reports.create_a_report);


  app.route('/reports/:reportId').get(reports.read_a_report)
    .put(reports.update_a_report)
    .delete(reports.delete_a_report);
};
reportController.js

    'use strict';


var mongoose = require('mongoose'),
  Report = mongoose.model('Reports');

exports.list_all_reports = function(req, res) {
  Report.find({}, function(err, report) {
    if (err)
      res.send(err);
    res.json(report);
  });
};




exports.create_a_report = function(req, res) {
  var new_report = new Report(req.body);
  new_report.save(function(err, report) {
    if (err)
      res.send(err);
    res.json(report);
  });
};


exports.read_a_report = function(req, res) {
  Report.findById(req.params.reportId, function(err, report) {
    if (err)
      res.send(err);
    res.json(report);
  });
};


exports.update_a_report = function(req, report) {
  Report.findOneAndUpdate({_id: req.params.taskId}, req.body, { new: true }, function(err, report) {
    if (err)
      res.send(err);
    res.json(report);
  });
};


exports.delete_a_report = function(req, res) {


  Report.remove({
    _id: req.params.reportId
  }, function(err, report) {
    if (err)
      res.send(err);
    res.json({ message: 'Report successfully deleted' });
  });
};
谢谢你的帮助

编辑:

index.js

const express = require('express');
const app = express();
var route = require('./api/routes/reportRoute');

app.get('/', function(req, res) {
  res.send('HEY!');
})
app.listen(3000, function(){console.log('Server running on port 3000')});

您尚未发布您的
reportController.js
,但如果函数列表\u all\u reports未设置响应主体,则会出现此问题。例如,添加

res.json({hello: "world"});

对处理程序函数的修改应该可以使其工作。

是您编写的所有代码。我想你没有正确连接路由器文件我的路由器缺少什么?要使这变得简单,只需在app.js中编辑。在
app.use(bodyParser.json())之后
add
app.get('/test',function(req,res){res.jsonp({data:'hello'});})
。恐怕它没有到达server.js…我想你的服务器文件有问题。刚刚添加了它。。。谢谢你的回答。我的函数正在返回报告,但我的数据库是空的,这可能是问题所在吗?能否用
res.json({hello:“world”})替换exports.list_all_reports函数只是为了做一次精神检查?只是尝试了一下,没用。。。得到相同的响应:无法获取/报告