IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> node.js 搭建简单后端项目express中使用POST调用外部API连接数据库 -> 正文阅读

[JavaScript知识库]node.js 搭建简单后端项目express中使用POST调用外部API连接数据库

node.js 搭建简单后端项目,express中使用POST,调用外部API,连接数据库

1、创建目录并初始化

mkdir node-server && cd node-server && npm init -y

2、安装express

npm install express --save

3、安装body-parser (express中使用POST)

npm install body-parser

4、安装axios (express 调用外部api)

npm install axios

5、新建index.js 作为

const express = require('express')
const app = express()
const bodyParser = require('body-parser')
const router = require('./router')//引用模块 
// parse application/x-www-form-urlencoded
//配置模板引擎body-parser一定要在app.use(router)挂载路由之前
app.use(bodyParser.urlencoded({extended: false}))
// parse application/json
app.use(bodyParser.json())
// 全局 中间件  解决所有路由的 跨域问题
app.all('*', function (req, res, next) {
    res.header('Access-Control-Allow-Origin', '*')
    res.header('Access-Control-Allow-Headers', 'X-Requested-With,Content-Type')
    res.header('Access-Control-Allow-Methods', 'GET,POST,PUT')
    res.header('Access-Control-Allow-Credentials', true);
    res.header("Content-Type", "application/json;charset=utf-8");
    next()
})
app.use(router)

app.listen(3033, function () {
    console.log("中间服务已启动!监听端口3033")
})

6、新建router.js 对请求的处理,express中使用POST/请求外部接口

//创建路由
const {Router} = require('express')
const router = new Router()
const axios = require("axios")

const api = 'http://192.168.1.116:8000/api/'

router.post('/inrecognition', (request, response) => { //处理post请求
    let obj = {
        deviceId: request.body.deviceId,
        deviceName: request.body.deviceName,
    }
    axios.post(api + 'inrecognition', obj) //请求外部接口
        .then((res) => {
            response.send(res.data)
        })
        .catch((error) => {
            console.error(error)
            response.send(error)
        })
})

module.exports = router

7、启动项目

node index.js

或在package.json scripts 添加启动项
在这里插入图片描述
添加 "start": "node ./index.js" 后可通过 npm run startnpm start 启动项目

8、项目启动后台持续运行,使用pm2
全局安装pm2

npm install pm2 -g

启动 (也可配置到package.json中)

pm2 start index.js

9、连接mysql数据库
下载mysql依赖

npm install mysql

新建 mysql.js 连接数据库

const mysql = require("mysql")
const Dbs = {
    host: 'localhost',
    user: 'root',
    password: 'root',
    database: 'mydb'
}
const connection = mysql.createConnection(Dbs)

connection.connect()
// //查询
// connection.query(`sql`, (err, rows, fields) => {
//     if (err) throw err
//     console.log(rows)
// })
//
//
// connection.end()
module.exports = connection

在需要调用的文件中引入使用,如在router.js引入

const mysql = require('./mysql')

调用

router.get('/getsomething', (req, res) => {
    mysql.query(`select * from uploaddeviceinfo limit 3`, (err, rows, fields) => {
        if (err) throw err
        res.send(rows)
    })
})

其它Node.js连接数据库方法参考 https://www.cnblogs.com/joyo-w/p/10660952.html

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 11:44:26  更:2022-04-28 11:47:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:43:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码