【发布时间】:2016-04-01 02:09:00
【问题描述】:
我是 nodejs 的新手,并深入研究了将 mongoose 用于 mongodb。让我向您展示我知道我在某处犯了错误的代码结构。假设从角度使用$http.post 我正在发送一个要插入到数据库中的对象。我尝试将数据插入数据库的方式似乎不起作用。
Mongoose Schema Contacts.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/contactlist');
var ContactSchema = new mongoose.Schema({
name: String,
email : String,
number : String
}, {collection:'contactlist'});
var ContactModel = mongoose.model('ContactList', ContactSchema);
module.exports = ContactModel;
Node server.js
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
var db = require('./model/Contacts.js');
var contact = new db();
require('./routes/routes.js')(app, db, contact);
Node routes.js
module.exports = function(app, db, contact){
// post api
app.post('/contacts', function(req,res){
var body = req.body;
contact.save(body, function(err, data){
res.json(data);
});
});
};
我在某个地方搞砸了,特别是使用new db() 将数据插入数据库并将其传递给routes 文件。我不确定我在这里缺少什么。插入解决后如何改进这些脚本?
【问题讨论】:
-
由于你没有在 routes.js 中使用 db 或 contact vars,你可以省略它们。如果你使用 req.body 那么你应该使用 bodyParser 中间件。
-
我正在使用 bodyParser 中间件。我只是没有在代码中显示。我在 routes.js 中使用 db 和联系变量。我正在通过函数传递它。我正在使用 db 获取数据。但我就是无法插入数据。
-
不详细讨论问题,我没有看到您的应用正在侦听传入请求,
app.listen -
@Srle 是的。我没有把所有常见的代码都放在代码中。只是我遇到困难的部分。
-
@nickB 所以还有什么问题吗?您有时间尝试任何建议的解决方案吗?
标签: angularjs node.js mongoose mean-stack