Note:我在帖子末尾的自动回复

我正在try 更好地体验nodeJS,我真的不想把所有的脚本都放在一个文件中.

所以,在这里的帖子后面,我使用了这个 struct

./
 config/
   enviroment.js
   routes.js
 public/
   css/
     styles.css
   images
 views
   index
     index.jade
   section
     index.jade
   layout.jade
 app.js

我的文件现在是:

app.js

var express = require('express');
var app = module.exports = express.createServer();

require('./config/enviroment.js')(app, express);
require('./config/routes.js')(app);

app.listen(3000);

enviroment.js

module.exports = function(app, express) {
    app.configure(function() {
        app.use(express.logger());
        app.use(express.static(__dirname + '/public'));
        app.set('views', __dirname + '/views');
        app.set('view engine', 'jade'); //extension of views

    });

    //development configuration
    app.configure('development', function() {
        app.use(express.errorHandler({
            dumpExceptions: true,
            showStack: true
        }));
    });

    //production configuration
    app.configure('production', function() {
        app.use(express.errorHandler());
    });

};

routes.js

module.exports = function(app) {

    app.get(['/','/index', '/inicio'], function(req, res) {
        res.render('index/index');
    });

    app.get('/test', function(req, res) {
        //res.render('index/index');
    });

};

layout.jade

!!! 5
html
    head
        link(rel='stylesheet', href='/css/style.css')
        title Express + Jade
    body
        #main
            h1 Content goes here
            #container!= body

index/index.jade

h1 algoa

我得到的错误是:

错误:无法查找视图"索引/索引"

但我真的不知道问题出在哪里...

我开始想是因为模块出口...

Answer:

我把它移到了应用程序上.js现在运行良好.

var express = require('express');
var app = module.exports = express.createServer();


require('./config/enviroment.js')(app, express);

app.set('views', __dirname + '/views');
app.set('view engine', 'jade');

require('./config/routes.js')(app);

app.listen(3000);

我真的不明白这背后的逻辑,但我要相信它有一个.

推荐答案

npm install express@2.5.9安装以前的版本,如果有帮助的话.

3.我知道.视图布局机制已被删除,但这可能不是您的问题.也将express.createServer()替换为express()

更新:

It's your __dirname from environment.js
It should be:

app.use(express.static(__dirname + '../public'));

Node.js相关问答推荐

express返回意外的URL

Mongoose更新在^8.0.3版中,许多似乎不能按预期工作

如何在RavenDB中执行JS索引?

Mongoose-如何从父文档填充到子文档

Mongoose查询-如何根据当前查找ID获取其他集合并将其插入到当前查找中?

如何在Angular jest测试中调用Nodejs的垃圾收集? node v20的测试速度慢且内存泄漏

Sequelize、postgres和posgis:在n°;公里

express 和 mongoose 的新密码不正确

为什么我的react 表单不能正常工作?

是Electron 的密码和登录凭据的安全存储吗?

使用 firebase 函数 api 运行套接字(相同的端口创建问题)

如何在 mongoDB 中用值 0 填充缺失的文档?

Node js中向rest服务发送https请求的步骤

使用 WebSockets 有服务器成本吗?

node.js 是否支持yields ?

ChildProcess 关闭、退出事件之间的区别

使用 ES6 语法和动态路径导入模块

NPM:为什么要安装这个包?

如何在 NodeJS 中拆分和修改字符串?

react-native run-android 无法识别