[英]nodeJS cannot find module in the same folder
我有一个简单的节点应用程序,我想在其中包含一个名为dishRouter的模块。 目录结构是这样的:- 结构
Dishes / index.js通过以下方式导出我在我的app.js中使用的dishRouter
var dishRouter = require('/dishRouter')
当我使用节点应用程序运行app.js时,它说: 错误
我试图打印__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); });
在Dishes/index.js
,底线出口dishRouter
时要导出DishRouter
(大写错字)。
在routes/index.js
,您想使用var DishRouter = require('./Dishes/');
因为导出的DishRouter
在Dishes
文件夹中。
而不是var DishRouter = require('./dishRouter');
,
您必须使用var DishRouter = require('./Dishes');
模块输出的内容与正确的目录路径无关紧要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.