我无法理解mongoose并在node / express中导出。
我有这个model.js文件
var mongoose = require("mongoose"),
Schema = mongoose.Schema;
var UserSchema = new Schema({
name: String
});
var User = mongoose.model("User", UserSchema);
if (User.count() == 0) {
User.insert({name: 'john doe'})
};
module.exports = User;
我想导出这个var用户,以便我以后可以在我的app.js中的app.post路由中插入新用户。
var User = require("User")
但它表示模块用户未定或类似。
答案 0 :(得分:0)
只要您打算使用模型之前需要model.js文件,您就可以使用Mongoose的内部模型缓存来检索任何其他文件中的模型。
<强> main_file.js 强>
var mongoose = require('mongoose');
require('./model.js') // loads models
// Only need to load them once for entire project
var User = mongoose.model('User'); // Notice no schema provided
// You can do this in any other file as long as
// they are required after the models are loaded
旁注:count
是异步操作,因此您的条件检查无法按预期工作。
答案 1 :(得分:0)
我假设model.js是你文件的名称。
您需要包含model.js的路径。例如,如果我在我的项目根目录中名为models的文件夹中有model.js,那么我会这样做:
Person
当你使用require()时,npm假设你要么谈论核心模块之一,要么讨论./node_modules目录中的一个npmjs包。如果它不是核心模块或位于node_modules中,那么节点将不知道在哪里找到它 - 除非你给它一个完整的路径。这篇博文很好地解释了它:
http://www.bennadel.com/blog/2169-where-does-node-js-and-require-look-for-modules.htm