node.js - 运行 Node 应用程序时未捕获、未指定的 'error'

标签 node.js express mongoose

我是 node.js express.js 的初学者。 (今天早上开始 :-) )我已经包括了 db.js,它有我与 mongolab 的连接细节和 User.js,这是我的模型。请在下面找到代码。

DB.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

module.exports.mongoose = mongoose;
module.exports.Schema = Schema;

// Connect to cloud database
var username = "Ausername"
var password = "Apassword";
var address = 'Aaddress';
connect();

// Connect to mongo
function connect() {
  var url = 'mongodb://' + username + ':' + password + address;
  mongoose.connect(url);
}
function disconnect() {mongoose.disconnect()}

用户.js

var db = require('../lib/db');

var UserSchema = new db.Schema({
    username : {type: String, unique: true}
  , password : String
})

var MyUser = db.mongoose.model('User', UserSchema);

// Exports
module.exports.addUser = addUser;

// Add user to database
function addUser(username, password, callback) {
  var instance = new MyUser();
  instance.username = username;
  instance.password = password;
  instance.save(function (err) {
    if (err) {
      callback(err);
    }
    else {
      callback(null, instance);
    }
  });
}

当我运行 Node 应用程序时,它报告以下错误

C:\Sripaul\Softwares\NodeJS\Projects\authentication>node app
Express server listening on port 3000

C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\lib\utils.js:413
        throw err;
          ^
Error: Uncaught, unspecified 'error' event.
    at NativeConnection.EventEmitter.emit (events.js:68:15)
    at Model.init (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\lib\model.js:554:31)
    at exports.tick (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\lib\utils.js:408:16)
    at Db.ensureIndex (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1066:28)
    at Db.indexInformation (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1200:28)
    at Cursor.toArray (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\cursor.js:124:30)
    at Cursor.each (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\cursor.js:166:32)
    at Cursor.nextObject.self.queryRun (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\cursor.js:441:39)
    at Cursor.close (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\cursor.js:687:5)
    at Cursor.nextObject.commandHandler (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\cursor.js:441:21)

app.js中的代码如下

app.post('/signup', function(req, res) {
  var username = req.body.username;
  var password = req.body.password;
  User.addUser(username, password, function(err, user) {
    if (err) throw err;
    res.redirect('/form');
  });  
});

有人可以帮我解决吗?

最佳答案

看起来在 mongo 实验室中发生了这个问题,因为它无法连接到亚马逊云。我尝试使用 Joyent Cloud,它运行良好。

关于node.js - 运行 Node 应用程序时未捕获、未指定的 'error',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15566702/

相关文章:

javascript - 使用 yield/generators 理解代码流

node.js - 关于 Mongoose Schema 设计的问题

node.js - 有必要使用nodeexpress检查url中的参数吗?

javascript - Node js如何处理文件响应

javascript - 传递表单数据在 Express/Node.js 中不起作用

javascript - 使用 cheerio 获取页面标题

node.js - Mongoose 和其他集合一起填充空集合

node.js - Actor 错误: Cast to string failed for value

node.js - Mongoose 5.0.16,获取无法读取未定义的属性 'replace'

javascript - Nodejs 将流管道插入已管道化的 N 个流中