woodk

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  

 

分类:

技术点:

相关文章:

  • 2021-09-24
  • 2021-11-01
  • 2021-10-03
  • 2021-12-29
  • 2021-12-01
  • 2021-11-04
  • 2021-12-26
猜你喜欢
  • 2021-11-28
  • 2021-09-10
  • 2021-12-05
  • 2021-12-16
  • 2021-12-30
  • 2022-03-03
  • 2021-04-29
相关资源
相似解决方案