节点JS找不到另一个文件夹中的文件的模块错误
如果我在像index.js一样的文件夹中有schema.js
var schemas = require('./schema');
工作正常,但如果我把schema.js在另一个文件夹中写入
var schemas = require('./folder/schema');
我得到一个错误Cannot find module
最新发生?
编辑1:我通过使用..folder /架构,而不是单一的摆脱了错误。 和服务器运行,但它仍然无法正常工作,因为我不能使用从index.js文件中的../model/schema module.export返回的mongoosedb对象。 它说myModel.find不是一个函数。 这是怎么回事??
控制器/ findallusers.js
var myModel = require('../models/schema'); var alluser; myModel.find({}, function(err, foundData){ if(err){ console.log(err); res.status(500).send(); } else{ alluser = foundData; } console.log(alluser); <-- this log is defined }); console.log(alluser); <-- this log is undefined module.exports = alluser; <-- cant export anything
正确parsing到schema.js的path
假设你的项目结构是这样的
Project | +-- routers | | | +-- index.js +-- models | | | +-- schema.js //in index.js var schemas = require('../models/schema');
要解决第二个错误,即myModel.find不是一个函数使用,module.exports而不是使用module.export
module.exports = myModel;
解决你的第三个问题
// controllers/findallusers.js --> (keep name simple ie userController.js) var myModel = require('../models/schema'); module.exports = { /** * Get All Users */ list: function(req, res) { myModel.find({},function(err, users){ if(err) { return res.status(500).json({message: 'Error getting Users.'}); } return res.json(users); }); }, /** * Keep Adding more functions as you want */ create: function(req,res){ //functionality to create user }, delete: function(req,res){ // functionality to delete user }, someDummyName: function(callback) { myModel.find({},function(err, users){ if(err) { return callback(err) } return callback(null,users); }); } }
//index.js call this new method ie someDummyName as router.get('/allusers', function(req, res){ userController.someDummyName(function(err,result){ if(err) { //return err } //process result as per your need }); });
您正在从schema.js中导出variablesmyModel,并只在index.js中导入模式
所以,尝试使用myModel.myModel.find()
引用.find函数我的猜测是myModelvariables在index.js中的现有myModelvariables后面