我有一个简单的节点应用程序,我想要包含一个名为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;
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;
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);
});
答案 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');
模块导出的内容并不重要,正确的目录路径是什么。