Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node JS在另一个文件夹中找不到文件的模块错误_Javascript_Node.js_Express - Fatal编程技术网

Javascript Node JS在另一个文件夹中找不到文件的模块错误

Javascript Node JS在另一个文件夹中找不到文件的模块错误,javascript,node.js,express,Javascript,Node.js,Express,如果schema.js与index.js位于同一文件夹中 var schema=require('./schema') 工作正常,但如果我将schema.js放在另一个文件夹中并编写 var schemas=require('./文件夹/schema') 我收到一个错误找不到模块发生了什么 Edit1:我通过使用..folder/schema而不是single来消除错误。服务器运行,但仍然无法正常工作,因为我无法使用index.js文件中通过module.export from../model/

如果schema.js与index.js位于同一文件夹中

var schema=require('./schema')

工作正常,但如果我将schema.js放在另一个文件夹中并编写

var schemas=require('./文件夹/schema')

我收到一个错误
找不到模块
发生了什么

Edit1:我通过使用..folder/schema而不是single来消除错误。服务器运行,但仍然无法正常工作,因为我无法使用index.js文件中通过module.export from../model/schema返回的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
var myModel=require('../models/schema');
var alluser;
myModel.find({},函数(err,foundData){
如果(错误){
控制台日志(err);
res.status(500.send();
}
否则{
alluser=foundData;
}

log(alluser);您正在从schema.js导出变量myModel,并在index.js中只导入schema


因此,请尝试使用
myModel.myModel.find()
引用.find函数。我猜myModel变量位于index.js中现有myModel变量的后面

假设您的项目结构如下

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  i.e 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文件位于同一目录中?我的意思是,我有一个带有index.js的路由器文件夹和一个带有schema.js的模型文件夹,我使用
模块导出schema对象。在schema,js中导出
,并尝试通过
var schemas=require('./model/schema')在index.js中使用它;
看来
.find()
是异步的。因此不可能通过module.exports返回它。相反,请导出一个接受回调或返回承诺的函数。@slebetman我正在做pawan提到的事情,导出一个函数
list:funtion(req,res){}
但在
list:function处出现语法错误(请求、回复){
发生了什么?在/models/文件夹中用您提到的内容创建了一个package.json文件。仍然出现错误
无法找到模块。/models/schema'
使用
。models/schema
解决了服务器上模块未找到错误的问题,但现在我无法使用从index.js.wha中的schema.js导出的数据库模型对象正在进行中…你能帮忙吗?这是我的尝试,以前从未使用过mongoose,但在我对它的初步研究中,我认为我的生活就是这样?在/model/schema之前使用两点刚刚解决了问题-\实际上它仍然不能正常工作。\我不能使用通过
模块返回的mongoosedb对象。导出
。/model/schema
index.js
文件中。它说
myModel.find
不是一个函数。发生了什么事?我添加了代码,也直接在index.js中使用了模型/模式代码。只需仔细检查我编辑的答案,如果它解决了所有问题,请接受答案。请阅读我上次的编辑,我不久前使用了.exports(我太傻了)我陷入了一个新问题。你能告诉我为什么alluser在回调函数之后变得不明确吗?
//index.js call this new method i.e someDummyName as  
router.get('/allusers', function(req, res){       

    userController.someDummyName(function(err,result){
      if(err) {
        //return err
      }
      //process result as per your need
    });

});