nodeJS无法在同一文件夹中找到模块

时间:2018-06-14 19:45:27

标签: javascript node.js express module

我有一个简单的节点应用程序,我想要包含一个名为dishRouter的模块。 目录结构如下: - Structure
Dishes / index.js导出我在我的app.js中使用的dishRouter     var dishRouter = require('/dishRouter')
当我使用节点应用程序运行app.js时,它会说:The Error
我试图打印__dirname,它给出了      “C:\ Users \用户库什\桌面\ NodeExamples \快车-例如\ Assignmnet1”
我不明白为什么节点在同一目录下找不到模块'dishRouter'。 任何帮助都表示赞赏,对于混乱的问题结构感到抱歉。 Dishes / index.js中的代码:

var DishRouter = require('express').Router();
var fs = require('fs');
var bodyparser= require('body-parser');
DishRouter.use(bodyparser.json());
DishRouter.all('/', function(req,res,next){
  res.writeHead(200,{'Content-Type': 'text/plain'});
  next();
});
DishRouter.get('/',function(req,res,next){
  res.end('Will send the dish list to you!');
});
DishRouter.post('/',function(req,res,next){
  res.end('will add the Dish named : '+req.body.name+' and the Description : '+req.body.description);
});
DishRouter.delete('/',function(req,res,next){
  res.end('will DELETE all dishes');
});
DishRouter.get('/:dishId',function(req,res,next){
  res.end('Will send the dish with name : '+req.params.dishId+' to you!');
});
DishRouter.put('/:dishId',function(req,res,next){
  res.end('Update the dish named : '+req.params.dishId+', Details to : '+req.body.description);
});
DishRouter.delete('/:dishId',function(req,res,next){
  res.end('will DELETE dish : '+req.params.dishId);
});
module.exports = dishRouter;

routes / index.js中的代码:

var express = require('express');
var fs = require('fs');
var DishRouter = require('./dishRouter');

var routes= express.Router();
var util = require('util');
routes.get('/', (req, res, next) => {
  console.log(util.inspect(req));
  res.writeHead(200,{'Content-Type': 'text/plain'});
  next();
});
routes.delete('/',(req,res)=> {
  res.sendStatus(404);
});
routes.use('/dishes', DishRouter);

module.exports = routes;

Assignment1 / app.js中的代码:

var express = require('express');
var routes = require('./routes');
var hostname = 'localhost';
var port = 3000;
var app =express();

app.use(express.static(__dirname + '/routes'));
app.use('/', routes);
app.listen(port,hostname,function(){
  console.log('Server running on port '+port);
});
  

2 个答案:

答案 0 :(得分:1)

Dishes/index.js中,当您要导出dishRouter(大小写拼写错误)时,底线会导出DishRouter

routes/index.js中,您希望使用var DishRouter = require('./Dishes/');,因为导出的DishRouter位于Dishes文件夹中。

答案 1 :(得分:0)

而不是bar//foo[not(ancestor::quux)]

您必须使用var DishRouter = require('./dishRouter');

模块导出的内容并不重要,正确的目录路径是什么。