您的位置:首页 > Web前端 > Node.js

Nodejs学习笔记之express

2014-10-08 17:24 274 查看
刚接触nodejs,看的书籍是《Node.js入门经典.2013.pdf》,

写下学习笔记,以后参考好用

本地环境 win7 nodejs v0.10.29 express 4.9.0

环境搭建,略。

01.Hello World之中文乱码,学习一门语言第一个当然是Hello World!,当然后续肯定会有中文乱码问题

var http = require("http");
http.createServer(function(req,res){
	res.writeHead(200,{"Content-Type":"text/html;charset:utf-8"});
	res.write('<!doctype html><html><head><meta  charset=utf-8" /><title>node</title></head><body>');
	res.end("Hello World! 我的NodeJs!\n</body></html>");
}).listen("3001","127.0.0.1");
console.log("Server running at http://127.0.0.1:3001/");[/code] 
乱码问题解决方案

1.<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

2.response.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'});

我这里2个都写了,如果还未解决,看看你的那个js文件的编码集是不是utf8,如不是转成utf8即可。

02.npm模块安装,太多描述意义不大,可参考文章末尾提供的书籍

安装模块

node install [moduleName] [-g全局安装]

使用模块

var model = require("modelName");

查找文档

npm docs [model_name]

npm bugs [model_name]查看项目bug

npm edit [model_name] 阅读源代码

03.http服务器,解析

//创建新的web服务器
var http = require("http");
http.createServer
//截取url模块
var url = require('url');
var reqUrl = "www.baidu.com:8080/abc/cc.jsp";
url.parse(reqUrl).hostname;
url.parse(reqUrl).port;
url.parse(reqUrl).pathname;


04.express jade模块构建站点

jade模版使用,略

关于express使用之中遇到的问题个人对某些代码的理解

express [projectname] 创建默认工程

cd [projectname]

npm install 安装依赖module

贴下一段代码,文章末尾有下载连接

app.js

//1.声明依赖module
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./routes/index');
var users = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views')); //设置views的目录
app.set('view engine', 'jade');  //设置模版类型

// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users); //这里引用了自己定义的users.js这个模块

//添加路由, 注意路由要添加在404的前面,否则会404(我这个版本是这样的)
app.get("/about",function(req,res){
	res.send('Hello World!');
});
app.get("/contact",function(req,res){
	res.render('contact.jade',{title:'no title'});
});
app.get("/product",function(req,res){
	res.render('product.jade',{title:'no title'});
});

// catch 404 and forward to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
    app.use(function(err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
        message: err.message,
        error: {}
    });
});

module.exports = app;
app.listen(3000);
console.log('server start...');


users.js代码

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res) {
  res.send('respond with a resource');
});

router.get('/:id', function(req, res) {
  var id = req.params.id;<span style="white-space: pre;">	</span>//request参数接收
  var user = [];
  if(id==1){
<span style="white-space: pre;">	</span>  user = {id:1,name:'张三'};
  }else if(id==2){
<span style="white-space: pre;">	</span>  user = {id:2,name:'李四'};
  }else{
<span style="white-space: pre;">	</span>  user = {name:'用户不存在'};
  }
  res.render('user.jade',{title:'用户信息',user:user});
});
module.exports = router;


然后运行node app.js 效果图如下











本工程源码下载

http://download.csdn.net/detail/wang_situ/8013463
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: