• nodejs nodejs的操作


    nodejs的操作

    由于版本造成的命令不能正常安装,请参考五问题

    一.概念:

     参考百度百科:

    http://baike.baidu.com/link?url=aUrGlI8Sf20M_YGk8mh--dM83NhajEdefGvqZkpcwh95CKSqQ8_9C_10dyB-zIapRcF66MWnYljhs4rEiT_EkyPVJ9BFNeq826Gf0GQT9ksBf0I0H0QhcpzDXiGzFHo4T6ifwY08J6V4iQu2Z0QzRq

    二.下载:

    访问nodejs官网 www.nodejs.org/download/   下载与机器相匹配的版本

    三.安装:

    参考百度经验:

    http://jingyan.baidu.com/article/b0b63dbfca599a4a483070a5.html

    四.exepress的安装:

    1.安装exepress框架:

    Quick Start

    (1)npm install -g express//安装全局的express。

    (2)express -t ejs webNodejs//使用ejs模板引擎创建项目,项目名为webNodejs,webNodejs也可以是路径。

    (3)cd webNodejs && npm install//进入项目路径下并且安装。

    (4) cd webNodejs//进入项目路径

    (5) nmp start//启动服务,如果app.js是入口,就可以直接启动app.js,反之,使用nmp start[我部署的就在bin/www此文件。(注意)]

    完成后如下图:

    2.参考github官网:

    https://github.com/strongloop/express

    3.参考expressjs官网:

    http://www.expressjs.com.cn/4x/api.html

    四.Demo:

     参考百度云盘:

    五.问题:

    问题一:
    安装 ejs 模板的语法有问题,安装不成功,如下:
    express -t ejs microblog
     
    需要改成:
    express microblog -e
     
    问题二:
    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:Workcode odejsmicroblog ode_modulesmongodblibmongodbdb.js:1395:11)
    解决办法如下:
    modelsuser.js 中的 collection.ensureIndex('name', {unique: true}); 改成collection.ensureIndex('name', {unique: true}, function(err, user){});
    modelspost.js 中的 collection.ensureIndex('user'); 改成collection.ensureIndex('user' ,function(err, post){});
  • 相关阅读:
    {转}每次从vss获取文件都是只读
    點擊按鈕后彈出新頁面導致原頁面CSS失效
    Mschat控件示例升级错误处理方法
    一个简单的使用EVP框架的加密过程 aes 128 ecb
    centos7的syslog知识点
    pam模块使用syslog日志调试
    Linux系统上的popen()库函数
    linux C语言 用openssl进行签名验签 --- 亲测2 sha256 sha512
    linux C语言 用openssl进行签名验签 --- 亲测 sha256 sha512
    k8s简介
  • 原文地址:https://www.cnblogs.com/zlp520/p/5108684.html
Copyright © 2020-2023  润新知