最基础的nodejs后端应用示例
http通信介绍


nodejs应用
安装nodejs环境省略(百度)
package.json
{ "name": "node_demo", "main": ".app.js", "dependencies": { "body-parser": "^1.15.2", "express": "^4.14.0" } }
app.js
var express = require('express'); var bodyParser = require('body-parser'); var app = express(); // use可以拦截get,post等其他全部请求 // 所有请求都会拦截 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); // 静态文件目录 app.use(express.static(__dirname + '/public')); app.get('/', function (req, res) { res.send('hello'); }); var server = app.listen(80, function () { var port = server.address().port; console.log('Example app listening at http://localhost:%s', port); });
然后
node app.js // 访问浏览器 localhost:80 就能连接上来了
Express简单应用
像上面那样,把路由统统写到app.js在项目中显然不合适。
一个nodejs一般分为网络处理和业务逻辑处理,网络处理部分我们一般使用像Express这样的框架。
Express(http://www.expressjs.com.cn/)拥有路由模块Router,通过路由可以把路由分散到各个模块。
Express基础应用示例
项目结构

主要代码
app.js
var express = require('express'); var bodyParser = require('body-parser'); var app = express(); // use可以拦截get,post等其他全部请求 // 所有请求都会拦截 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); // 静态文件目录 app.use(express.static(__dirname + '/public')); app.use('/user', require('./routes/user.js')) var server = app.listen(80, function () { var port = server.address().port; console.log('Example app listening at http://localhost:%s', port); });
user.js
var express = require('express'); var router = express.Router(); router.all('/list', function (req, res) { console.log(req.method); console.log(req.baseUrl); console.log(req.path); console.log(req.headers['user-agent']); // 获取某一请求头 console.log(req.get('user-agent')); // 获取url查询参数 console.log(req.query); // 获取url查询参数值 console.log(req.query.id); // post请求时,获取body中的参数值 console.log(req.body); console.log(req.body.id); res.send('hello'); }) // router.get('/:id', function (req, res) { // // rest风格 // console.log(req.params.id); // res.send('ok'); // }) router.get('/fb', function (req, res) { res.status(403).send(':( forbidden!') }) router.get('/tt', function (req, res) { res.contentType('application/javascript') res.sendFile('/ok.js', {root: __dirname + '/../public'}); }) router.get('/mm', function (req, res) { // 常用于ajax返回 res.json({a:1, b:[true, 'ok']}); }) module.exports = router;
test.html
<!DOCTYPE html> <html> <head> <title>我是test页面</title> </head> <body> <h1>我是test</h1> <form action="/user/list?id=query_id" method="post"> <input type="text" name="id" value="body_id"> <input type="submit" name="" value="submit"> </form> </body> </html>
然后,同样是运行
node app.js

浙公网安备 33010602011771号