Node.js学习记录1

一、初识Node.js

JavaScript作为前端的主流开发语言经久不衰,但是前端程序员往往因此受限,常常因为等不到后端人员的接口延误工期。Node.js则允许前端程序员以ECMAScript语法来编写后端程序,极大地扩充了前端程序员的能力范围,并催生了许多全栈工程师的出现。如果不想另外学一门后端语言,那加入Node.js绝对是不二之选。

二、Node.js的内置模块

Node.js有几个常用的内置模块:fs模块,path模块,http模块。模块化也是Node.js的一大特点。Node.js的模块化遵循CommonJS的标准。就是用require进行模块的导入,用module.exports对外暴露模块的接口。

fs模块:

读文件

const fs = require('fs')

fs.readFile('./data.txt',(err,dataStr)=>{

})

写文件

fs.writeFile('./data.txt',ObjectStr,(err)=>{

})

写文件会覆盖原来的内容

path模块:

const path = require('path')

const fs = require('fs')

fs.readFile(path.join(__dirname,'./data.txt'),(err,dataStr)=>{

})

path模块提供了路径拼接的方法以及__dirname这个变量。该变量指代的是当前的文件路径。用以上语法代替  './data.txt'的好处是可以避免路径出错的问题。

从完整路径中截取文件名和扩展名

path.basename(filepath)

path.extname(filename)

http模块:

创建本地服务器,进行request请求的事件监听

const http = require('http')

const server = http.createServer()

server.on('request',(req,res)=>{

})

server.listen(80,()=>{

})

可以调用res.end()方法,传入字符串或者对象,客户端就会收到传入的信息。

调用res.setHeader方法,可以设置字符集,解决中文乱码问题。

三、自定义模块

创建新的js文件,然后在文件里用module.exports暴露接口,然后用require导入。

问题:为什么要自定义模块?

1,增强代码的可读性

2.提高项目的可维护性

3.解决变量污染的问题

四、第三方模块

可以使用npm进行对应模块的下载。

比如moment包是有关时间的模块。express是有关服务器搭建的模块。

五、express介绍

express是对http模块的进一步封装,使用起来更加简便。

搭建并启动本地服务器

const express = require('express')

const app = express()

app.listen(80,()=>{

})

监听get,post请求

app.get('/user',(req,res)=>{
    res.send('Message OK!')
})

app.post('/user',(req,res)=>{
    res.send('Post OK!')
})

往app上挂载这个两个请求即可,用req和res接受回调。res.send方法可以传输数据。

第一个参数可以省略。如果有参数,实际请求地址为根路径拼接上该参数。

客户端可以用三种方式给服务器传递数据。

第一种,直接在网址后面填写参数

如www.baidu.com?name=zs&age=40

可以从req.query中得到(需要注意的是,应该先进行一些数据格式解析配置)

第二种,在网址后面直接填写参数。服务器端的app.get函数应该变为下面这样

app.get('/user/:id/:name',(req,res)=>{
    req.params
})

这样我们就匹配了两个参数,这两个参数可以在req.params中得到。

第三种,直接将数据包含在数据体中(post)

可以在req.body中接收

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞猪0_0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值