【发布时间】:2014-07-29 05:15:29
【问题描述】:
我正在使用平均堆栈进行项目。 在设置客户端之前,我正在使用邮递员测试我的路线。
我正在尝试发送发布请求以获取特定用户和发布请求以添加用户。 这是代码......
//cons.js
'use strict';
var strg = 'mongodb://localhost/users';
module.exports={
strg:strg
}
//models.js
'use strict';
var mong = require('mongoose'),
str = require('./cons');
mong.connect(str.strg);
var pips = mong.model('pips',{
name: {type: String, required: true, index: { unique: true }},
pass: {type: String, required: true},
act:{type: Boolean}
});
module.exports = {
pips: pips
}
//user_ctrl.js
var addPips, getPipsById,
pip = require('./models').pips;
getPipsById = function(req, res){
/*pip.findOne({jina:req.params.unam}).exec(
function(err,rez){
if(err||!rez){
res.send(err);
}
res.json(rez);
})*/
pip.findOne({jina:req.body.unam}).exec(
function(err,rez){
if(err||!rez){
res.send(err);
}
res.json(rez);
})
};
addPips = function(req, res){
pip.create({
name: req.body.unam,
pass: req.body.upas,
act: false
}, function(err, rez){
if(err||!rez){
res.send(err);
}
res.send("User account created...");
})
};
module.exports = {
addPips: addPips,
getPipsById : getPipsById
}
//routes.js
'use strict';
var jada = require('./user_ctrl');
module.exports = function(app){
//app.get('/api/users/:unm',jada.getUserById);
app.post('/api/users',jada.getPipsById);
app.post('/api/users',jada.addPips);
app.all('/api/*', function(req, res) {
res.send(404);
});
};
//server.js
'use strict';
var express = require('express'),
morgan = require('morgan'),
port =process.env.PORT || 3000,
bodyParser = require('body-parser'),
methodOverride = require('method-override'),
app = express();
app.use(morgan('dev'));
app.use(bodyParser());
app.use(methodOverride());
app.use(express.static(__dirname+"/app"));
require('./config/models');
require('./config/user_ctrl');
require('./config/routes')(app);
app.listen(port);
console.log('Magic happens on port: '+port);
我正在使用发布请求来获取特定用户,因为我从表单而不是 url 中选择信息。 什么时候添加用户。我收到一条错误消息:“验证错误名称并需要通过”。我似乎看不出这是从哪里来的,因为我正在将表单中的值分配给参数。 谁能告诉我做错了什么?谢谢...
【问题讨论】:
-
从您的代码看来,name 和 pass 是必填字段,并且 name 和 pass 都发生了验证错误。检查 req.body.unam 和 req.body.upas 是否具有某些值或未定义。您定义的另一件事是 String 并且您正在传递一个布尔值
-
我已经更正了数据类型问题,谢谢。我用其他值测试了 req.body.unam 和 req.body.upas ,发现返回的是 undefined 。查看 server.js 的东西似乎设置正确,我需要 body-parser。有什么建议吗?
标签: javascript node.js rest express mongoose