新手求助Nodejs express3.4.3安装jade的问题

新手求助Nodejs express3.4.3安装jade的问题

我的是win7旗舰64位系统,安装好express3.4.3之后,新建本地站点,默认安装jade最新版0.35.0; 执行app.js

E:\nodeJsProject\express\sit3>node app.js connect.multipart() will be removed in connect 3.0 visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives connect.limit() will be removed in connect 3.0 Express server listening on port 3000

然后浏览器访问127.0.0.1:3000 会报错 e:\nodeJsProject\express\sit3\node_modules\jade\node_modules\transformers\node_modules\uglify-js\lib \parse.js:53 KEYWORDS = makePredicate(KEYWORDS); ^ util.debug: Use console.error instead DEBUG: ERROR in file: e:\nodeJsProject\express\sit3\node_modules\jade\node_modules\transformers\node _modules\uglify-js\lib\parse.js / ReferenceError: KEYWORDS is not defined

请问有遇到过这个问题的么,该怎么解决啊,网上查看说是jade版本不兼容,试了一下0.10.0版本的也是不行的。请问在express3.4.3这个版本下,怎么把jade安装好!


3 回复

新手求助Nodejs express3.4.3安装jade的问题

问题描述:

我在Windows 7旗舰版64位系统上安装了Node.js Express 3.4.3,并且默认安装了Jade的最新版本(0.35.0)。在运行app.js时,服务器正常启动并监听3000端口。但是当我通过浏览器访问127.0.0.1:3000时,却收到了一个错误信息。

错误信息如下:

e:\nodeJsProject\express\sit3\node_modules\jade\node_modules\transformers\node_modules\uglify-js\lib
\parse.js:53
KEYWORDS = makePredicate(KEYWORDS);
^
util.debug: Use console.error instead
DEBUG: ERROR in file: e:\nodeJsProject\express\sit3\node_modules\jade\node_modules\transformers\node
_modules\uglify-js\lib\parse.js / ReferenceError: KEYWORDS is not defined

解决方案:

这个问题通常是因为Jade的版本与Express 3.4.3不兼容。根据你提到的尝试,Jade 0.10.0版本也未能解决问题。以下是一些可能的解决方案:

  1. 降级Jade版本: 尝试使用与Express 3.4.3兼容的Jade版本。例如,你可以尝试使用Jade 1.0.0或更低版本。你可以通过以下命令安装特定版本的Jade:

    npm install jade@1.0.0
    
  2. 检查依赖关系: 确保所有依赖项都已正确安装。你可以删除node_modules文件夹并重新安装所有依赖项:

    rm -rf node_modules
    npm install
    
  3. 修改代码: 如果上述方法都无法解决问题,你可以在你的Express应用中指定一个特定版本的Jade模板引擎。例如,在你的app.js文件中,你可以这样写:

    var express = require('express');
    var app = express();
    
    // 指定Jade模板引擎
    app.set('view engine', 'jade');
    app.set('views', __dirname + '/views');
    
    // 示例路由
    app.get('/', function(req, res) {
        res.render('index', { title: 'Hello World' });
    });
    
    // 启动服务器
    app.listen(3000, function() {
        console.log('Express server listening on port 3000');
    });
    

    确保你的views目录中有相应的index.jade文件。

  4. 检查文档: 查看Express 3.4.3的官方文档,确保你的代码符合该版本的要求。有时版本之间的差异会导致一些不兼容的问题。

希望这些步骤能帮助你解决Jade安装和使用中的问题。如果还有其他疑问,请随时提问。


重新安装了一下 express@2.5.11 与 jade@0.10.0 这次就可以访问本地127.0.0.1:3000; 可是express@3.4.3 与 jade@0.35.0 怎么就不可以呢

根据你的描述,你遇到的问题是因为 uglify-js 的一个旧版本与 jade 版本不兼容。为了确保兼容性,建议使用特定版本的 jadeuglify-js

以下是一些可能的解决方案:

解决方案

  1. 降级 jadeuglify-js 版本: 你可以尝试降级到较早版本的 jadeuglify-js,以确保它们之间的兼容性。例如,可以安装 jade 0.32.2 和 uglify-js 2.4.19。

    在项目根目录下运行以下命令:

    npm install jade@0.32.2 --save
    npm install uglify-js@2.4.19 --save
    
  2. 修改 app.js 文件: 确保你的 app.js 文件中正确设置了模板引擎。例如:

    var express = require('express');
    var app = express();
    
    // 设置模板引擎为 jade
    app.set('views', __dirname + '/views');  // 指定 views 文件夹的位置
    app.set('view engine', 'jade');  // 设置默认的模板引擎为 jade
    
    // 路由定义
    app.get('/', function(req, res) {
      res.render('index', { title: 'Hello World' });
    });
    
    app.listen(3000);
    console.log('Express server listening on port 3000');
    
  3. 创建视图文件: 在项目中创建一个名为 views 的文件夹,并在其中添加一个 index.jade 文件。例如:

    doctype 5
    html
      head
        title= title
      body
        h1 Hello World
    

通过以上步骤,你应该能够解决版本不兼容的问题,并让 Express 应用正常工作。如果问题仍然存在,可以尝试删除 node_modules 目录并重新安装依赖项。

希望这些建议对你有所帮助!

回到顶部