nodejs学习-day04

1、Express

1、1 修改完代码自动重启服务

使用第三方命令行工具,nodemon来帮我们解决频繁修改代码后重启服务器问题。

npm install --global nodemon

使用

nodemon app.js

只要我们通过nodemon启动服务,就会监视你的代码变化,当代码发生变化时,会自动重启服务。

1、2 基本路由
get:

//当以get方法请求时,执行对应处理函数
app.get('/', function(req, res){
	res.send('hello')
})

post:

//以post方法请求时,指定对应处理函数
app.post('/', function(req, res){
	res.send('get post request')
})

1、3 静态服务:开放当前路径下文件夹

1、 如果你的静态资源存放在多个目录下面,你可以多次调用 express.static 中间件:现在, public 目录下面的文件就可以访问了。(不用带上public)

app.use(express.static('public'));
//访问路径
//http://localhost:3000/images/kitten.jpg
//http://localhost:3000/css/style.css
//http://localhost:3000/js/app.js
//http://localhost:3000/images/bg.png
//http://localhost:3000/hello.html

2、 如果你希望所有通过 express.static 访问的文件都存放在一个“虚拟( virtual)”目录(即目录根本不存在)下面,可以通过为静态资源目录指定一个挂载路径的方式来实现,现在,你就爱可以通过带有 “/static” 前缀的地址来访问 public 目录下面的文件了。
如下所示:——类似于给public起一个别名static,使得其他文件可以访问

app.use('/static', express.static('public'));
//访问路径
//http://localhost:3000/static/images/kitten.jpg
//http://localhost:3000/static/css/style.css

3、

app.use('/static', express.static(path.join(__dirname, 'public')));
//访问路径
//http://localhost:3000/static/images/kitten.jpg
//http://localhost:3000/static/css/style.css

2、在Express中使用art-template渲染

安装:

npm install --save express
npm install --save art-template
npm install --save express-art-template

配置:

var express = require('express')
var app = express()
/*
*第一个参数‘html’表示,当渲染以该名称结尾的文件时,使用art-template模板引擎
*需要安装art-template,因为express-art-template依赖于它
*/
app.engine('html', require('express-art-template'))
//默认将所有视图文件放到views中

使用:

app.get('/', function (req, res) {
	//默认会去项目中的views目录中寻找该文件,可以通过app.set()修改
    res.render('404.html', {
    	comment: '文件失联了',
    })
})
<!DOCTYPE html>
// 404.html内容
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>您访问文件不存在。。。{{comment}}</h1>
</body>
</html>
//可以通过app.set()修改,将默认的`views`视图路径修改
//第一个参数`views`不可修改
app.set('views', 新的视图存储路径)

3、在Express解析表单post请求

//提交之后你的url会变成,`url/post?数据`
//res.query获取get请求数据
<form action="/post" method="get">
</form>
//提交之后你的url会变成,`url/post?
<form action="/post" method="post">
</form>

安装:

npm install --save body-parser

配置-使用:

	var express = require('express')
	var bodyParser = require('body-parser')
	
	var app = express()
	//配置body-parser
	//只要加入这个配置,则会在req请求上多出:`body`属性
	//即可获取post请求提交数据
	app.use(bodyParser.urlencoded({extended: false}))
	app.use(bodyParse.json())
	
	app.use(function(req, res){
		res.setHeader('Content-Type', 'text/plain')
		res.send(JSON.stringify(req.body, null, 2))
	})

使用:


4、回调函数

获取到一个函数中异步操作的结果,必须使用回调函数获取。
使用callback
在这里插入图片描述
常见的异步函数


 // setTimeout
  // readFile
  // wirteFile
  // readdir
  // ajax
  // 往往异步 API 都伴随有一个回调函数
  // var ret = fn()
  // $.get('dsadas', fucntion () {})
  // var ret = $.get()

crypto模块——hash加密

crypto模块的目的是为了提供通用的加密和哈希算法。用纯JavaScript代码实现这些功能不是不可能,但速度会非常慢。Nodejs用C/C++实现这些算法后,通过cypto这个模块暴露为JavaScript接口,这样用起来方便,运行速度也快。

const crypto = require('crypto');

const hash = crypto.createHash('md5');

// 可任意多次调用update():
hash.update('Hello, world!');
hash.update('Hello, nodejs!');

console.log(hash.digest('hex')); // 7e1977739c748beac0c0fd14fd26a544

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值