nodeJs个人笔记

来源:互联网 发布:淘宝详情图怎么上传 编辑:程序博客网 时间:2024/06/08 06:06

先说明常用的模块:
1.crypto 用来做md5加密:

        var md5 = crypto.createHash('md5'),        md5password = md5.update(password).digest('hex');

2.formidable 文件上传:

router.post('/',function(req,res){    var form = new formidable.IncomingForm();    //设置编辑    form.encoding = 'utf-8';    form.uploadDir = 'public'+AVATAR_UPLOAD_FOLDER;    //保留后缀    form.keepExtensions = true;    //文件大小 2m    form.maxFieldsSize = 2 * 1024 * 1024;    //上传文件的入口文件    form.parse(req, function(err, fields, files) {        if (err) {            res.locals.error = err;            res.render('index', { title: TITLE });            return;        }        var extName = '';  //后缀名        switch (files.fulAvatar.type) {            case 'image/pjpeg':                extName = 'jpg';                break;            case 'image/jpeg':                extName = 'jpg';                break;                     case 'image/png':                extName = 'png';                break;            case 'image/x-png':                extName = 'png';                break;                 }        if(extName.length == 0){            res.locals.error = '只支持png和jpg格式图片';            res.render('index', { title: TITLE });            return;                           }        var avatarName = Math.random() + '.' + extName;        var newPath = form.uploadDir + avatarName;        fs.renameSync(files.fulAvatar.path, newPath);  //重命名        var imgs = AVATAR_UPLOAD_FOLDER + avatarName;        IMGS_ARRAY.push(imgs);    });    //res.locals.success = '上传成功';    res.redirect('/details');/*      res.render('details',{        title:'图片列表',        imgs:IMGS_ARRAY    });*/});

3.press-session session控制
connect-mongo 是用来将connect的session持久化到mongodb中的
常见用法:

app.use(session({    key: 'session',    secret: 'keboard cat',    cookie:{maxAge: 1000*60*60*24},    store: new MongoStore({        db: 'notes',        mongooseConnection: mongoose.connection    }),    resave: false,    saveUninitialized: true}));

4.前端框架代码管理使用bower, 常常用bootstraps 的css
$ npm install -g bower //
bower install bootstrap
安装bootstrap时有可能会出现这种问题:

bower ENOGIT        git is not installed or not in the PATH

那是因为没有安装git,可以在windows的git bash下操作,或者linux安装git
在 project 目录 下安装完bootstrap后在目录下会出现 bower_components 目录,但是在ejs文件中直接引用会出现 css找不到

        <link rel="stylesheet" type="text/css" href="/bower_components/bootstrap/dist/css/bootstrap.min.css" />        <link rel="stylesheet" type="text/css" href="/stylesheets/style.css" />        <script src="/bower_components/jquery/dist/jquery.min.js" type="text/javascript"></script>

需要在 project 的plublic目录下 执行 bower install bootstrap;结构如下:这里写图片描述

5.在app.js中添加路由和错误处理时需要注意:
添加的所有get,post路由必须在 错误处理前,否则 不能先执行路由:
这里写图片描述

6.数据库连接模块:
var mongoose = require(‘mongoose’);
var db = mongoose.connect(‘mongodb://localhost/notes‘); //数据库连接

//定义model中的schema

var mongoose = require('mongoose');var schema = mongoose.Schema;var userSchema = new schema({    username: String,    password: String,    email: String,    createTime:{        type:Date,        default: Date.now    }});//User对应着数据库中的 collectionsexports.User = mongoose.model('User', userSchema);  //或者module.exports = mongoose.model('User', userSchema);

完整的nodeJs实现的nodeJs比较示例代码:
http://download.csdn.net/detail/hahayikeshu/9575262

0 0
原创粉丝点击