Node.js日记:客户端和服务端介绍、Node.js介绍

简介: Node.js日记:客户端和服务端介绍、Node.js介绍

Express 是一个基于 Node.js 平台,快速、开放、极简的 web 开发框架 ,用来快速搭建Web服务。
Express 是一个第三方模块,有丰富的 API 支持,强大而灵活的中间件特性。
Express 不对 Node.js已有的特性进行二次抽象,只是在它之上扩展了 Web 应用所需的基本功能
本质是使用各种中间件,快速的搭建服务。
1.安装
使用 npm init 命令为应用程序创建 package.json 文件。
npm init -y(如果文件夹的名字是中文可以直接输入‘npm init’,手动输入name)

做项目时可以直接复制 package.json 文件然后npm install,按照package.json里记录的内容进行安装。

安装install
npm install express

注意:

项目目录名字不要取中文,也不要取express ,package.json 文件里的name也不要取express

如果安装不成功

换个网络环境

运行下npm cache clean -f,再重装试试

2.使用
注意:http模块下响应结束的标志是res.end(),而express框架下响应结束的标志是res.send()。

// 0. 加载 Express
const express = require('express')

// 1. 调用 express() 得到一个 app
// 类似于 http.createServer()
const app = express()

// 2. 设置请求对应的处理函数
// 当客户端以 GET 方法请求 / 的时候就会调用第二个参数:请求处理函数
//相当于sever.on监听get方法
app.get('/', (req, res) => {
res.send('hello world')
})

// 3. 监听端口号,启动 Web 服务
app.listen(3000,()=>{
console.log('running');
})

app.get('/')相当于添加个事件监听:当用户以get方式求"/"时,它后面的回调函数会执行,其回调函数中的req,res与前面所学http模块保持一致。

res.send()是exprss提供的方法,不是nodejs提供的 ,用于结束本次请求。类似的还有res.json(),res.sendFile() 。

3.express下的art-template:
安装
npm i express-art-template

使用
前提是需要先引入express框架。

app.engine('html', require('express-art-template'))//把express-art-template相应内容引入到express框架下,应用于html类文件。

引入express-art-template就可以使用render的方式渲染页面了,但是在express框架下不需要用对象去接收【var str=tempalte.render('',{});res,end(str)】,而是直接集成在response上,直接【res.render】

4.托管静态资源
让用户直接访问静态资源是一个web服务器最基本的功能。

静态资源:不是动态进行更改的。
图片:http://localhost:3000/1.png
CSS样式:http://localhost:3000/css/style.css
静态JS:http://localhost:3000/js/index.js

4.1限制前缀
通过限制前缀的方式来决定web服务上的路径是否开放,把可以随便访问的静态文件放在开放的路径下,而需要受保护的文件放在不开放的路径下,想通过前端的请求请求不到,只有服务器响应给对方的情况下才能拿到。

// 限制访问前缀(前端的请求) static静态(托管的是服务端的一个文件夹路径)
app.use('/public', express.static('public'))

这意味着想要访问public下的内容,必须要在请求url中加上/public

4.2post接口
利用post请求获取数据的时候需要利用中间件

4.3中间件
当使用post请求,需要利用中间件获取post请求提交的数据,中间件是一个特殊的url地址处理函数。

body-parser

安装:

npm i body-parser

引入:

var bodyParser=require('body-parser')

app.use(bodyParser.urlencoded({extended:false}))

app.use(bodyParser.json())

ps:使用中间件后req上会有一个body属性,req.body是键值对的形式,可以拿到前端请求的数据 。

4.4利用Express框架搭建留言板
引入express,express-art-template,body-parser

var express = require('express')
var app = express()
//利用post接口需要引入中间件
var bodyParser=require('body-parser')
var arr = [
{
name: 'aa',
content: 'bbb',
timer: '2018-11-2 17:11:22'
},
{
name: 'bbb',
content: 'cccc',
timer: '2028-11-2 17:11:22'
}
]
//静态托管 限制前缀(限制的是请求端的)
app.use('/public', express.static

相关文章
|
24天前
|
JavaScript 前端开发 中间件
JS服务端技术—Node.js知识点
本文介绍了Node.js中的几个重要模块,包括NPM、Buffer、fs模块、path模块、express模块、http模块以及mysql模块。每部分不仅提供了基础概念,还推荐了相关博文供深入学习。特别强调了express模块的使用,包括响应相关函数、中间件、Router和请求体数据解析等内容。文章还讨论了静态资源无法访问的问题及其解决方案,并总结了一些通用设置。适合Node.js初学者参考学习。
33 1
|
1月前
|
JavaScript 前端开发 开发工具
Node.js——初识Node.js
Node.js——初识Node.js
27 4
|
2月前
|
缓存 监控 JavaScript
Node.js中基于node-schedule实现定时任务之详解
Node.js中基于node-schedule实现定时任务之详解
91 0
|
2月前
|
前端开发 网络协议
Nest.js 实战 (十四):如何获取客户端真实 IP
这篇文章介绍了在Nest.js应用中获取客户端真实IP地址的问题及解决方法。问题出现在使用本地代理时,请求的IP地址总是返回::1或::ffff:127.0.0.1。为解决这个问题,需要确保代理服务器正确设置转发头如X-Forwarded-For或X-Real-IP,后端服务能够读取这些头信息来确定客户端的IP地址。文章以作者自己的OpenResty应用为例,展示了如何通过配置反向代理和设置X-Forwarded-For头来获取真实IP地址,并提供了相关的代码示例。最后,文章提到了使用这个解决方案后的实际效果,例如在操作日志中记录真实IP地址。
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
100 2
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
134 4
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
85 4
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
76 4
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的大学生入伍人员管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的大学生入伍人员管理系统附带文章源码部署视频讲解等
94 4