Node.js 快速:找不到模块?

Node.js 快速:找不到模块?,node.js,express,Node.js,Express,我正在使用Express进行一些路由,我想从signup.js调用静态javascript文件中的一个函数,但我得到一个错误消息 Error: Cannot find module './js/list.js' 我的目录结构如下: app.js -routes/signup.js -public/js/list.js 在我的app.js文件中,我有一行: app.use(express.static(path.join(__dirname, 'public'))); 在我的signup.

我正在使用Express进行一些路由,我想从
signup.js
调用静态javascript文件中的一个函数,但我得到一个错误消息

Error: Cannot find module './js/list.js' 
我的目录结构如下:

app.js
-routes/signup.js
-public/js/list.js
在我的
app.js
文件中,我有一行:

app.use(express.static(path.join(__dirname, 'public')));
在我的
signup.js
中,我有:

var listModel = require('./js/list.js');
我的
list.js
文件包含:

module.exports.list = function (userName, category) { 
  return ({
    "owner" : userNameName,
    "category" : category,
    "completed" : [],
    "planned" : [],
    "current" : [],
    "dropped" : [],
    "onHold"  : []
  });
}

为了将列表函数导入我的注册文件,我还缺少什么吗?谢谢

>P>由于它们不同的<代码>登录名> /代码>和列表中有不同的父目录,所以NoDEJs要求函数不会考虑它们的兄弟姐妹。因此你需要写作

var listModel = require('../public/js/list.js');
routes/signup.js的内部

如果您有一个文件
public/test.js
,您确实可以使用

var listModel = require('./js/list.js');

要从其中请求依赖项。

请求模块路径应为:

var listModel = require('../public/js/list'); // it is fine to have the file extension

在您的情况下,由于
signup.js
list.js
位于不同的文件夹中,因此必须指定它的完整路径

var listModel=require('../public/js/list.js')


app.use(express.static(path.join('public'))
表示当您转到
localhost
(或应用程序所在的任何路径)时,您将有权访问该文件夹。因此,这意味着当您转到
localhost:3000/js/list.js
时,您将可以访问该文件夹。

在我看来,从
routes/signup.js
中,您需要
require('../public/js/list.js)哦,哇,谢谢,成功了!