查看“Express.js”的源代码
←
Express.js
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看并复制此页面的源代码:
==expressjs== Express是一款基于Node.js的高性能高级Web框架。 ;相关资源 *官网 http://expressjs.com/ *想看文档教程神马的,请到官网:http://expressjs.com *Express的源码托管在这里:https://github.com/visionmedia/express *Express使用了Connect中间件,Connect的文档在这里:http://senchalabs.github.com/connect/ *如果你想做单元测试,可以看看TDD框架Expresso:http://visionmedia.github.com/expresso/ *Express可选的Jade模板引擎也挺有趣的,它和haml是亲戚,像是个HTML预编译器:http://jade-lang.com/ *说到haml,你也可以了解下sass,它像一个CSS预编译器:https://github.com/visionmedia/sass.js *不过同类产品中,我更喜欢不那么激进的less:https://github.com/cloudhead/less.js ;用npm安装express <source lang="bash"> $cd /usr/local/lib $npm install express </source> ;按照程序猿和攻城狮们的惯例,来个Hello World: <source lang="javascript"> var express = require('/usr/local/lib/node_modules/express'); var app = express.createServer(); app.get('/', function(req, res){ res.send('Hello World'); }); app.listen(3000); </source> ;使用mysql数据库的例子 <source lang="javascript"> //mysql var Client = require('/usr/local/lib/node_modules/mysql').Client; var client = new Client(); client.user = 'user'; client.password = 'password'; client.query('USE tiny_shop'); //express var express = require('/usr/local/lib/node_modules/express'); var app = express.createServer(); app.listen(3000); //action app.get('/', function(req, res){ res.send('Hello World'); }); app.get('/mysql', function(req, res){ client.query('SELECT * FROM tags', function selectCb(err, results, fields) { if (err) { throw err; } var data = ''; for (var i=0; i<results.length; i++) { var firstResult = results[i]; data += 'id: ' + firstResult['id']+'tag: ' + firstResult['tag']; } res.send(data); }); }); </source> ;如何系统地学习 Express JS? 先从基础说起吧,Node.js使用javascript语言,所以JS的语法、特性及OO肯定要先掌握了,再学习node的api,特别需要领会事件驱动及异步编程的思想,这算是一个很大的转变,Node主要用于网络应用,所以网络编程内容多看下。 express是一个基于node的web框架(集成web服务器+mvc),当然其实不用框架,使用node自己弄一个web服务器和mvc框架也不是很麻烦(Node为网络而生,当然强大的不止这点),但是有优秀的express,封装了很多常用功能,推荐用。 学习express肯定是先把api过一遍,文档中的简单例子都试试,但这肯定是不够的,要深入了解还是得看源码,express主要依赖connect(基于node的http服务器框架,提供大量的中间件帮助用户构建强大灵活的web server),所以深入connect也是有必要的。 connect https://github.com/senchalabs/connect ==使用express生成一个空白网站== ;express命令的使用 <source lang="bash"> Usage: express [options] Options: -h, --help output usage information -V, --version output the version number -s, --sessions add session support -e, --ejs add ejs engine support (defaults to jade) -J, --jshtml add jshtml engine support (defaults to jade) -h, --hogan add hogan.js engine support -c, --css add stylesheet support (less|stylus) (defaults to plain css) -f, --force force on non-empty directory </source> ;生成网站 <source lang="bash"> $ express myapp create : myapp create : myapp/package.json create : myapp/app.js create : myapp/public create : myapp/public/javascripts create : myapp/public/images create : myapp/public/stylesheets create : myapp/public/stylesheets/style.css create : myapp/routes create : myapp/routes/index.js create : myapp/views create : myapp/views/layout.jade create : myapp/views/index.jade install dependencies: $ cd myapp && npm install run the app: $ node app </source> 按照提示执行命令就可以了。打开http://localhost:3000/ 显示的是views/index.jade文件,有两行express的简短文字宣告。 ==express响应get示例== 第一步:请参考下面的地址,把express跑起来。 http://www.tomtalk.net/wiki/Nodejs#.E4.BD.BF.E7.94.A8express.E7.94.9F.E6.88.90.E4.B8.80.E4.B8.AA.E7.A9.BA.E7.99.BD.E7.BD.91.E7.AB.99 第二步:编辑下面三个文件的内容,加入相应代码。 ;app.js 处理路由 <source lang="javascript"> app.get('/signup', routes.signup); </source> ;routes/index.js 获取get参数 <source lang="javascript"> exports.signup = function(req, res){ res.render('signup', { title: 'Express', username: req.query.username, email: req.query.email }); }; </source> ;views/signup.jade 输出get提交的值 <source lang="html5"> extends layout block content h1 Node.js菜鳥筆記-註冊 <form id="signup" method="GET" action="/Signup"> <label>使用者名稱:</label><input type="text" id="username" name="username" /><br> <label>電子郵件:</label><input type="text" id="email" name="email" /><br> <input type="submit" value="註冊我的帳號" /><br> </form> h1 #{username} h1=email </source> ==怎样让express自动重新加载修改过的js文件?== 如果能自动重加载js的话, 开发会快捷很多. 我现在每次都要先ctrl+c停止, 然后再启动node, 很不方便. 你需要的是: *node-dev *nodemon *forever 具体参见:https://github.com/joyent/node/wiki/modules#wiki-restarting
返回
Express.js
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息