node基础

119 阅读3分钟

笔记 文档 npmjs 大事件 koa

读取文件、判断是否读取成功
写入文件、判断是否写入成功
先写入后读取
整理一个成绩数据,读取、整理、写入新文件

回车换行:\r\n

path.join
path.basename(path[.ext])
path.extname(path)
时钟案例

regStyle=/[\s\S]</style>/ regScript=/[\s\S]</script>/ regScript.exec() str.replace(regStyle, '...')

创建基本的web服务器

const server = http.createServer() server.on('eventName', (req,res) => { res.setHeader('Content-Type', 'text/html;charset=utf-8') res.end(str) }) server.listen(80, () => { .... })

实现clock时钟的web服务器

127.0.0.1 12.0.0.1/index.html

自定义时间格式化函数
moment包
npm init -y

npm i nrm -g nrm ls nrm use taobao
i5ting_toc

自定义包

htmlEscape <: &lt;
>: &gt;
": &quot;
&: &amp;
html.replace(/<|>|"|&/g, match => { switch(match) { case '>': return '&lt;' } })
npm login 发布:包的根目录:npm publish 删除: npm unpublish 包名 --force

express

cnpm i express@4.17.1 postman req.query req.params app.use('/public',express.static(public)) npm i nodemon -g 模块化路由 let router = express.Router() app.use('/api',router) 中间件函数---全局中间件---添加自定义属性|方法---多个全局中间件---创建局部生效的中间件---两种方式(逗号隔开|[])使用多个局部中间件

中间件分类
  • 应用级别中间件
  • 路由级别中间件
  • 错误级别中间件--注册在所有路由之后 路由里面人为制造错误 throw new Error('') app.use((err, req, res, next) => { console.log(err.message) res.send('Error:'+ err.message) })
  • express内置中间件 express.json()---req.body //请求体数据 express.urlencoded({ extended: false })
  • 第三方中间件 npm i body-parse -D app.use(parse.urlendcoded({ extended: false }))
自定义中间件
// 定义一个全局中间件
app.use((req, res, next) => {
    // 监听客户端请求事件req.data
    req.on('data', chunk =>{
        str += chunk
    })
    // 监听req的end事件
    req.on('end')
    // 字符串请求体数据解析成对象格式
    // querystring.parse()
    
    // 解析处理的对象挂载为req.body
})

进行自定义中间件模块化拆分 定义一个get接口 定义一个post接口

跨域

定义一个html测试跨域问题 npm i cors 路由之前配置cors中间件 app.use(cors())

简单请求 预检请求---火狐 jsonp接口---得到函数名称---定义发送客户端的数据---拼接出一个函数调用字符串--响应给客户端

mySQL

安装---使用workbench 创建数据库--点击添加数据库---填写数据库名字---点击apply 创建表----写入数据

SQL语法

-- select * from users 点击小闪电 select username,password from users insert into users(username,password) values('tony', '654321') update users set password='123456' where id=4 update users set password='123456', status=1 where id=4 delete from users where id=4 使用where子句查询 and/or order by select * from users order by status select * from users order by id desc select * from users order by status desc, username asc select count(*) from users where status=0 select count(*) as total from users where status=0 select username as uname, password as pd from users

mysql

npm i mysql

// 查询
const db = mysql.createPool()
db.query('', (err, results) => {

})
// 插入
const sqlStr = insert into users(username, password) values(?, ?)
db.query(sqlStr,[user.username, user.password], (err, results) => {
    if(result.affectedRows === 1){}
})
const sqlStr = insert into users set ?
db.query(sqlStr,user, (err, results) => {
    if(result.affectedRows === 1){}
})

// 跟新
const sqlStr = update users set password=?, status=? where id=?
db.query(sqlStr,[user.username, user.status, user.id], (err, results) => {
    if(result.affectedRows === 1){}
})

// 跟新
const sqlStr = update users set ? where id=?
db.query(sqlStr,[user, user.id], (err, results) => {
    if(result.affectedRows === 1){}
})

// 删除
const sqlStr = delete from users where id=?
db.query(sqlStr,7, (err, results) => {
    if(result.affectedRows === 1){}
})
// 标记删除
const sqlStr = update users set status=? where id=?
db.query(sqlStr,[1,5], (err, results) => {
    if(result.affectedRows === 1){}
})
express-session
npm i express-session

app.use(session({
    
}))

req.session.user = req.body
req.session.islogin = true

api/logout
req.session.destroy()
jwt
npm i jsonwebtoken express-jwt
koa
const Koa = require('Koa')
const app = new Koa()

app.use(ctx => {
  ctx.body = 'Hello Koa'
})

app.listen(3000, () => {
  console.log('server running on http://127.0.0.1:3000')
})