Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
LuckilyChensy
translation
提交
63e2afe7
T
translation
项目概览
LuckilyChensy
/
translation
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
translation
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
63e2afe7
编写于
2月 07, 2018
作者:
R
renfufei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
express参考API
上级
c9e12118
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
194 addition
and
0 deletion
+194
-0
tiemao_2018/05_headless-chrome-node-js/05_headless-chrome-node-js.md
.../05_headless-chrome-node-js/05_headless-chrome-node-js.md
+104
-0
tiemao_2018/05_headless-chrome-node-js/express-server.js
tiemao_2018/05_headless-chrome-node-js/express-server.js
+90
-0
未找到文件。
tiemao_2018/05_headless-chrome-node-js/05_headless-chrome-node-js.md
浏览文件 @
63e2afe7
...
...
@@ -457,6 +457,110 @@ puppeteer相关的API和配置项请参考: <https://github.com/GoogleChrome/pup
### 9. 使用 http 服务来调用
NodeJS 通过 http/https 模块来提供web服务。
创建新项目:
```
mkdir -p pdfprint
cd pdfprint
```
创建
`server.js`
文件
```
// 模块以及端口号
const http = require('http');
const http_port = 80;
// 请求处理器
const requestHandler = (request, response) => {
console.log("request.url="+request.url);
response.end('Hello Node.js Server!');
};
// server实例
const server = http.createServer(requestHandler);
// 监听
server.listen(http_port, function(err){
if (err) {
return console.error('something bad happened', err);
}
console.log(`server is listening on ${http_port}`);
});
```
启动服务器:
```
node server.js
```
安装 express 框架:
```
mkdir -p pdfprint
cd pdfprint
npm install express --save
npm install express-handlebars --save
```
其中
`--save`
的意思,是同时将依赖信息写入 package.json;
然后编写 express-server.js 文件:
```
// express参考API: http://expressjs.com/en/api.html
// 模块依赖
const path = require('path');
const express = require('express');
// 端口号
const http_port = 80;
// express服务实例
const server = express();
// 请求 Mapping
// get, post, put, all 等
server.get('/', function(request, response){
// express 包装的参数
var params = request.query;
response.json(params);
});
// 启动监听
server.listen(http_port, function(err){
if (err) {
// 如果启动时发生错误:
return console.error('something bad happened', err);
}
console.log(`server is listening on ${http_port}`);
});
```
启动 express 服务器:
```
node express-server.js
```
启用调试模式:
```
set DEBUG=express*
node express-server.js
```
参考:
<https://blog.risingstack.com/your-first-node-js-http-server/>
...
...
tiemao_2018/05_headless-chrome-node-js/express-server.js
0 → 100644
浏览文件 @
63e2afe7
// express参考API: http://expressjs.com/en/api.html
// 模块依赖
const
path
=
require
(
'
path
'
);
const
express
=
require
(
'
express
'
);
const
exphbs
=
require
(
'
express-handlebars
'
);
// 端口号
const
http_port
=
80
;
// express服务实例
const
server
=
express
();
// mount 事件
server
.
on
(
'
mount
'
,
function
(
parent
)
{
console
.
log
(
'
Server Mounted:
'
,
parent
);
});
// 中间件模式
server
.
use
(
function
(
request
,
response
,
next
){
console
.
log
(
"
request.url=
"
+
request
.
url
);
console
.
log
(
"
request.headers=
"
,
request
.
headers
);
next
();
});
// 中间件模式
server
.
use
(
function
(
request
,
response
,
next
){
request
.
random
=
Math
.
random
();
request
.
date
=
new
Date
();
//.getTime();
next
();
});
// 最后可以加上: 错误处理器
server
.
use
(
function
errorHandler
(
err
,
request
,
response
,
next
){
console
.
error
(
'
something bad happened
'
,
err
);
response
.
status
(
500
).
send
(
'
Server-Error:
'
+
err
);
});
// 注册模板引擎: (扩展名, 处理函数)
server
.
engine
(
'
.hbs
'
,
exphbs
({
defaultLayout
:
'
main
'
,
extname
:
'
.hbs
'
,
layoutsDir
:
path
.
join
(
__dirname
,
'
views/layouts
'
)
}));
server
.
set
(
'
view engine
'
,
'
.hbs
'
);
server
.
set
(
'
views
'
,
path
.
join
(
__dirname
,
'
views
'
));
// 请求 Mapping
// get, post, put, all 等
server
.
all
(
'
*
'
,
function
requireAuth
(
request
,
response
,
next
){
// 校验
//
next
();
});
//
server
.
get
(
'
/
'
,
function
(
request
,
response
){
// view_name, data
response
.
render
(
'
home
'
,
{
name
:
'
John
'
,
date
:
request
.
date
});
});
//
server
.
get
(
'
/random.json
'
,
function
(
request
,
response
){
//response.end('Hello From Express!');
response
.
json
({
message
:
"
Hello From Express!
"
,
random
:
request
.
random
});
});
//
server
.
get
(
'
/pdf.json
'
,
function
(
request
,
response
){
// express 包装的参数
var
params
=
request
.
query
;
//response.end('Hello From Express!');
response
.
json
(
params
);
});
// 启动监听
server
.
listen
(
http_port
,
function
(
err
){
if
(
err
)
{
// 如果启动时发生错误:
return
console
.
error
(
'
something bad happened
'
,
err
);
}
console
.
log
(
`server is listening on
${
http_port
}
`
);
});
//
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录