nodejs开发指南中出现的问题以及解决汇总

问题一:

安装 ejs 模板的语法有问题,安装不成功,如下:

express -t ejs microblog

需要改成:

express  -e  ejs  microblog

问题二:

partial 方法已经不能用了,可以用include代替,如下:

<ul><%- partial('listitem', items) %></ul>

需要改成:

<% items.forEach(function(listitem){ %>

<% include listitem %>

<% }) %>

问题三:

helpers 和 dynamicHelpers 方法已经不能用了,如下:

app.helpers({

     inspect: function(obj) {

          return util.inspect(obj, true);

     }

});

app.dynamicHelpers({

     headers: function(req, res) {

          return req.headers;

     }

});

app.get('/helper', function(req, res) {

     res.render('helper', {

          title: 'Helpers'

     });

});

需要改成:

var util = require('util');

app.locals({

     inspect: function(obj){

          return util.inspect(obj, true);

     }

});

app.use(function(req, res, next){

     res.locals.headers = req.headers;

     next();

});

app.get('/helper', function(req, res){

     res.render('helper',{

          title: 'Helpers'

     });

});

还需要注意的是,上面这段代码需要放在 app.use(app.router); 前面。

问题四:

express3.*已经不支持layout方法了,所以要改成include才能正常显示首页。

在 views 文件夹下新建,header.ejs 和 footer.ejs。

layout.ejs 中的内容,以 <%- body %> 为界限,上面的内容写入header.ejs ,下面的内容写入footer.ejs

然后在 index.js 中加入 <% include header.ejs %> 和 <% include footer.ejs %>,把表单内容,写在中间即可

问题五:

配置mongodb时,很多报错:

app.js中的 var settings = require('../settings'); 应改成 var settings = require('./settings');

app.js中的 app.use(express.bodyParser()); 应该去掉

app.js中的 var MongoStore = require('connect-mongo'); 应改成 var MongoStore = require('connect-mongo')(express);

问题六:

出现 has no method 'router' 问题,解决办法如下:

保留原来的 app.use(app.router); 不要按作者的说法改成 app.use(express.router(routes));

并且在 app.js 最末尾加上 routes(app);

而且还要删除掉 app.js 中的

app.get('/', routes.index);

app.get('/u/:user', routes.user);

app.post('/post', routes.post);

app.get('/reg', routes.reg);

app.post('/reg', routes.doReg);

app.get('login', routes.login);

app.post('login', routes.doLogin);

app.get('/logout', routes.logout);

问题七:

req.flash 方法不能用,解决办法如下:

运行>npm install connect-flash 安装组件

并在app.js中加入:

var flash = require('connect-flash');

app.use(flash());

问题八:

Error: Cannot use a writeConcern without a provided callback

    at Db.ensureIndex (D:\Work\code\nodejs\microblog\node_modules\mongodb\lib\mongodb\db.js:1395:11)

解决办法如下:

\models\user.js 中的 collection.ensureIndex('name', {unique: true}); 改成collection.ensureIndex('name', {unique: true}, function(err, user){});

\models\post.js 中的 collection.ensureIndex('user'); 改成collection.ensureIndex('user' ,function(err, post){});

转载于:https://my.oschina.net/u/1771420/blog/265355

### 回答1: 《Node.js开发指南》是一本针对Node.js进行详细讲解的书籍。Node.js是一个基于Chrome运行时平台的JavaScript运行环境,可以让JavaScript具备了操作文件、搭建服务器等传统后端语言的能力。在当今Web开发领域,Node.js已经成为前后端开发分离、高并发处理、服务器端渲染等方面的首选技术。相比于其他后端开发语言,Node.js以其轻便、高效、快速的特点,受到广泛的欢迎。 《Node.js开发指南》全面系统地介绍了Node.js的安装、基础语法、模块化编程、异步编程、网络编程、文件操作等关键知识点。此外,书还详细介绍了Node.js常用的框架及其他扩展技术,如Express、Koa、WebSocket、MySQL、MongoDB等。书既包含理论知识,也包含大量实战案例,配有详细的代码及注释。不仅适合Node.js初学者学习,也适合已有一定基础的开发者深入学习和应用。 总之,对于想要掌握Node.js技术的开发者来说,《Node.js开发指南》是一本很实用的参考书,具有较高的实用性和指导性。它让读者可以快速掌握Node.js的基础、技术以及应用,有助于提升开发效率和提高编码水平。 ### 回答2: Node.js开发指南是一本非常实用的技术书籍,涵盖了一系列Node.js开发方面的知识,包括Node.js基础、Web应用开发、Node.js网络编程、Node.js模块开发、Node.js性能优化等等。读者可以学习到Node.js的各种特性和技术,快速入门Node.js开发。 在这本书,你将学习到如何使用Node.js和相关的技术栈来构建高性能、高可拓展性的Web应用程序。它不仅涵盖了常见的Node.js基础,还介绍了如何使用Node.js开发可靠和可扩展的后端服务,如何进行测试和调试,如何管理模块和版本控制。此外,本书还包括了许多实用的例子和案例分析,可以帮助你更好地理解和应用所学知识。 Node.js开发指南是一本适合各种技术背景的读者的书籍,不论是初学者还是有经验的开发人员都可以从获益。它是一本详实、易于理解的参考书,可以帮助你快速入门并掌握Node.js的开发技巧。 总之,Node.js开发指南是一本非常实用的技术书籍,如果你想深入学习Node.js并将其应用于实际开发,这本书绝对值得一读。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值