【发布时间】:2017-07-20 03:38:05
【问题描述】:
我正在尝试按照本教程构建一个 RESTful 网络服务: https://www.codementor.io/olatundegaruba/nodejs-restful-apis-in-10-minutes-q0sgsfhbd
返回一个CANNOT GET/reports错误没有用... 我正在尝试学习 node.js,但在任何地方都找不到错误,而且我尝试的所有方法都不起作用。
另外,当我调用服务器时,它会到达 index.js,它会打印一个“嘿”。这不是应该先到达 server.js 吗?
这是我的代码:
服务器.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')});
【问题讨论】:
-
就是你写的所有代码。我认为你没有正确连接路由器文件
-
我的路由器缺少什么?
-
为了让这个简单,只需在 app.js 中编辑。在
app.use(bodyParser.json());之后添加app.get('/test', function(req, res) { res.jsonp({data : 'hello'});})然后尝试 localhost:port/test 并告诉我们发生了什么? -
它返回 Cannot GET /test。恐怕它没有到达 server.js...
-
我认为您的服务器文件有问题。
标签: javascript node.js rest api express