node.js - Mongoose 保存错误

标签 node.js mongodb mongoose

下面是我从网站复制的示例代码。我正在尝试将信息保存到 mongodb。我已经尝试过有关堆栈溢出的类似答案,但仍然无法解决它。

当我运行它并写入 ID、姓名和年龄时,保存方法失败,但没有给出错误消息。原因可能是什么?预先感谢您的任何帮助。

var express = require('express');
var http = require('http');
var path = require('path');
var mongoose = require('mongoose');
var bodyparser = require('body-parser');
var methodOverride = require('method-override');

var app = express();

// all environments
app.set('port', process.env.PORT || 4000);
app.set('views', __dirname + '/views');
app.set("view engine", 'jade');

app.use(bodyparser.json());
app.use(methodOverride());
//app.use(app.router);
app.use(express.static(__dirname + '../public'));
//app.use(express.static(path.join(__dirname, 'public')));

//app.get('/', function (req, res) {
//    res.render('index', {});
//});


app.get("/", function(req, res) {
res.sendFile(path.join(__dirname, "/index.html"));
});

mongoose.connect('mongodb://127.0.0.1/test');
mongoose.Promise = global.Promise;
var Schema = new mongoose.Schema({
_id    : String,
name: String,
age   : Number
});

var user = mongoose.model('emp', Schema);



app.get('/view', function(req, res){
user.find({}, function(err, docs){
    if(err) res.json(err);
    else    res.render('index', {users: docs});
    });
});


app.post('/new', function(req, res){
new user({
    _id    : req.body.email,
    name: req.body.name,
    age   : req.body.age
    }).save(function(err){
        if(err) res.json(err);
        else    res.send('Successfully inserted!');
        });
    });



var server = http.createServer(app).listen(app.get('port'), function(){
    console.log('Express server listening on port ' + app.get('port'));
});

最佳答案

如果您将架构更改为以下内容,它就会起作用:

var Schema = new mongoose.Schema({
  email: String,
  name: String,
  age: Number
});

我还建议将模型从“emp”更改为“user”。或者从“user”到“emp”的所有变量。保持一致更具可读性,并且会在以后节省您的时间。另外,您似乎缺少:顶部的 require('jade')

您可以通过电子邮件查询来查找用户。 Mongo 将在插入时自动生成一个 _id 。

希望这对您有所帮助!

关于node.js - Mongoose 保存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38818271/

相关文章:

mysql - 每当数据库字段发生变化时将数据推送到客户端

mongodb - mongodb中$where查询中两个不同字段的逻辑或

javascript - 如何编码字符串以在 JavaScript 中以 HTML 格式显示?

javascript - Node.js、MongoDB 和并发

node.js - 如何将 MongoDB 查询从 Node.js 驱动程序格式调整为 Mongoose 格式

node.js - 是否有任何不依赖于 node-gyp 的 NodeJS bcrypt 模块?

node.js - Angular 5 反复出现问题 - Webpack 无法编译简单项目

javascript - NodeJs、Mocha 和 Mongoose

javascript - 在 Mongoose 中如何迭代ObjectId数组?

node.js - 渲染 View 时应该使用 return 关键字吗?