Node.js API express web服务器MongoDB
我正在使用express web server和mongoDB作为DB服务器编写Node.js REST API。 项目的目录树如下所示: 当我尝试访问“/new/test”路由时,出现错误“Cannot GET/new/test”。通过访问此路径,它应该基于“firstname”URL参数在数据库中创建一个新条目 Routes.js:Node.js API express web服务器MongoDB,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我正在使用express web server和mongoDB作为DB服务器编写Node.js REST API。 项目的目录树如下所示: 当我尝试访问“/new/test”路由时,出现错误“Cannot GET/new/test”。通过访问此路径,它应该基于“firstname”URL参数在数据库中创建一个新条目 Routes.js: 'use strict'; module.exports = function(app) { var americaine = require('../c
'use strict';
module.exports = function(app) {
var americaine = require('../controllers/americaineController');
// Firstname Routes
app.route('/new/:firstname')
.post(americaine.new_firstname);
};
DB条目创建功能位于Controller.js上:
'use strict';
var mongoose = require('mongoose'),
Firstname = mongoose.model('Firstname');
exports.new_firstname = function(req, res) {
var new_firstname = Firstname(req.params.firstname);
new_firstname.save(function(err, firstname) {
if (err)
res.send(err);
res.json(firstname);
});
};
Model.js:
'use strict';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var FirstNameSchema = new Schema({
/*id: {
type: Number,
required: false
},*/
name: {
type: String,
required: true
}
});
module.exports = mongoose.model('Firstname', FirstNameSchema);
你们对我的问题有什么想法吗?提前谢谢
Jérémy将方法.post()更改为.get()
因为您实际上是在执行get请求而不是post请求。您无法获取它,因为它被定义为post
app.route('/new/:firstname')。post(americaine.new_firstname)
'/new/:firstname'路由使用一个用于创建DB条目的参数。据英国《每日邮报》报道,提供数据需要交付后的功能。你真的不应该去“创造”一些东西。所以,让我们考虑一下“请求”中的错误,而不是方法。为什么我们不应该这么做?当然是因为。GET不是“创建”动词。意思是“找回”某物。要“创建”东西,您可以根据实际的底层操作使用POST或PUT。我还考虑了RESTAPI标准/new/:firstname'路由接受一个转发参数以创建新的DB条目。因此,根据RESTAPI标准,每个POST函数都应该用于提供数据。