node.js+Express框架,前端自己创建接口
创始人
2024-01-25 06:15:00

目录

一、安装

1、安装node.js

2、安装Express框架

3、安装nodemon

二、写接口

三、连接数据库

1、安装:

2、连接数据库

3、执行

四、注意事项

1、跨域


这篇文章看完如果您觉得有所收获,认为还行的话,就点个赞收藏一下呗

一、安装

1、安装node.js

node就不讲了,你们应该都安装过了 

2、安装Express框架

官方给出的概念:Express是基于Node.js平台,快速、开发、极简的Web开发框架 

通俗的理解:Express的作用和Node.js内置的http模块类似,是专门用了创建Web服务器的

在项目所处的目录中(输入cmd即可看到终端),运行如下的终端命令,即可将express安装到项目中使用:

(1)全局安装express npm install -g express-generator(2)查看是否安装成功express -v(3)建立后端服务器文件夹server express server -e.(4)进入创建的文件夹cd server(5)安装 npm i

到这里安装就结束了,然后把文件server用vscode打开,打开控制台输入命令npm start 

然后打开浏览器,输入默认地址http://localhost:3000/即可打开网页

若是想要不想使用默认端口3000,可以自己定义端口号

打开server/app.js,在文件中写以下代码

// 监听端口
app.listen(888, () => {console.log('服务器已经启动');
})

 然后重新启动服务器

 

3、安装nodemon

nodemon是一个自动启动node文件的第三方包 。

在编写调试Node.js项目的时候,如果修改了项目的代码,则需要频繁的手动close掉,然后再重新启动,非常繁琐。可以使用nodemon(nodemon - npm)这个工具,他能够监听项目文件的变动,当代码被修改后,nodemon会自动帮我们重启项目,极大方便了开发个调试。

只能在开发阶段使用,因为他是通过watch来进行检测代码,

(1)安装 nodemonnpm install -g nodemon(2)使用 nodemon
传统的方式是运行node app.js命令启动项目,需要手动重启
现在将node命令替换为nodemon命令,使用nodemon app.js启动项目,会自动重启

补充:之前我们是使用npm start命令启动,其实他是运行的node  

所以我们现在不使用npm start,而是nodemon app.js

如果出现这个问题,有可能是因为缓存的问题,所以清理一下就可以了

 

这样就可以啦 

二、写接口

(推荐这个) 一种是在server/routes文件下创建路由模块,在模块中写

router.get('/Login', (req, res) => {// 前端接口/api/Login, 后端这里用/Login// req 请求对象, res 响应对象res.send('登录成功'); // 响应'1'回去
})

一种是在app.js中写

app.get('/login' ,(req, res) =>{// 后端收到post传参console.log(req.body);res.send('登录成功')
});

测试接口使用Postman

 注意,server写get接口,是可以获取到的,但是写post则会报错404

那是因为在express中没有获取post请求 的API ,我们要用第三方包来获取body-parser 中间件

安装
npm install --save body-parser配置
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())使用示例
// 引包
var express = require('express')
var bodyParser = require('body-parser')
var app = express()// 只要加上这两句配置,则在 post请求对象上会多出一个属性:body
// 也就是可以用 req.body 来获取发送过来的数据 
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))//post
// parse application/json
app.use(bodyParser.json())//post

 那我们来写一下代码,看看是否可以使用post接口

 router.post('/user/emia', (req, res) => {// 后端收到post传参console.log(req.body);res.send({status: 0,code: 200,msg: 'POST请求成功!',data: ['123', '456']})});

 到这里就可以获取到post接口啦 

三、连接数据库

前面两步其实就可以完成一些返回简单数据的接口,但如果想要完成一些比较复杂的,那就要连接数据库了。这里我拿MySQL数据库来讲。

步骤分为三步:

① 安装操作 MySQL 数据库的第三方模块(mysql)

② 通过 mysql 模块连接到 MySQL 数据库 

③ 通过 mysql 模块执行 SQL 语句

1、安装:

只需要安装MySQL ServerMySQL Workbench这两个软件,就可以了满足需求了

地址:

1、MySQL Server:专门用来提供数据存储和服务的软件。

2、MySQL Workbench:可视化的 MySQL 管理工具,通过它,可以方便的操作存储在 MySQL Server 中的数据

参考他的文章,他写的比较详细:

https://blog.csdn.net/weixin_43804496/article/details/115846430

 

 

2、连接数据库

(1)安装mysql模块
npm  install  mysql(2)配置 mysql 模块
// 1. 导入 mysql 模块
const mysql = require('mysql')
// 2. 建立与 MySQL 数据库的连接关系
const db = mysql.createPool({host: '127.0.0.1', // 数据库的 IP 地址user: 'root',     // 登录数据库的账号password: 'admin123',  // 登录数据库的密码database: 'my_db_01',  // 指定要操作哪个数据库
}) (3)测试 mysql 模块能否正常工作
调用 db.query() 函数,指定要执行的 SQL 语句,通过回调函数拿到执行的结果:
// 测试 mysql 模块能否正常工作
db.query('select 1', (err, results) => {// mysql 模块工作期间报错了if(err) return console.log(err.message)//打印出[RowDataPacket{‘1’:1}]的结果就证明数据库连接正常  
console.log(results)
}) 

3、执行

就展示一部分 

(1)查询数据
// 查询 users 表中所有的数据
const sqlStr = 'select * from users'
db.query(sqlStr, (err, results) => {// 查询数据失败if (err) return console.log(err.message)// 查询数据成功// 注意:如果执行的是 select 查询语句,则执行的结果是数组console.log(results)
}) (2)插入数据
//向users表中,新增一条数据,其中username的值为Spider-Man,password的值为 pcc123
const user = { username: 'Spider-Man', password: 'pcc123' }
// 定义待执行的 SQL 语句,其中英文的?表示占位符
const sqlStr = 'insert into users (username, password) values (?, ?)'
// 执行 SQL 语句,使用数组的形式,依次为?占位符指定的具体的值
db.query(sqlStr, [user.username, user.password], (err, results) => {// 执行 SQL 语句失败了if (err) return console.log(err.message)// 成功了// 注意:如果执行的是 insert into 插入语句,则 results 是一个对象// 可以通过 affectedRows 属性,来判断是否插入数据成功if (results.affectedRows === 1) {console.log('插入数据成功!')}
}) 

四、注意事项

1、跨域

使用 cors 中间件解决跨域问题:

cors 是 Express 的一个第三方中间件。通过安装和配置 cors 中间件,可以很方便地解决跨域问题。等于是服务端直接允许请求获取资源并使用。

app.js

(1)安装中间件 
npm install cors(2)导入中间件 
const cors = require('cors')(3)配置中间件,一定注意是在路由之前调用
app.use(cors())

前端:

在vue.config.js中填写反向代理

proxy: {//灵活代理;请求前缀为/api时,走下面的代理"/api": {target: "http://localhost:3000/", //代理服务器把请求转发给url(真正的后台服务器)changeOrigin: true, //用于控制请求头中的host值, 允许跨域//真正的服务器没有/api,所以要重写路径置空,否则找不到相应的路径pathRewrite: {"/api": "",},},},

后端:

router.post('/user/emia', (req, res, next) => {// 调用res.send方法,向客户端响应结果res.header("Access-Control-Allow-Origin", "*"); //只要添加这一句就可以了res.send({status: 0,code: 200,msg: 'POST请求成功!',data: ['123', '456']})
});

相关内容

热门资讯

什么是419 419是什么意思... 嗨,辣条陪你理智吃瓜最近刚还想着10月特殊时期可能没啥瓜了,结果一到月底就来了。孟美岐冷不丁就突然上...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
什么是419 419是什么意思... 嗨,辣条陪你理智吃瓜最近刚还想着10月特殊时期可能没啥瓜了,结果一到月底就来了。孟美岐冷不丁就突然上...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...