节点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); }); } } 

//解决你的问题https://stackoverflow.com/questions/39504219/how-to-use-use-callbacks-or-promises-to-return-a-object-from-an-asynchronous-fun

 //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后面