[英]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.