nodejs封装api

安装了nodeJs

执行:

安装淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

安装 yarn(我使用这个,淘宝镜像总是莫名其妙各种bug。。。)

npm install yarn -g

接着项目中执行:

yarn add express --save

yarn add body-parser --save

yarn add supervisor --save


 api.js(服务)

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var supervisor = require('supervisor');
//引用bodyParser 
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
//设置跨域请求
app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Credentials", true);
    res.header("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By", ' 3.2.1');
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});
var questions = [{
        name: 'xiaoming',
        age: 41
    },
    {
        name: 'lihua',
        age: 99
    }
];
//写个接口
app.get('/api/user', function(req, res) {
    res.status(200),
        res.json(questions)
});
app.post('/api/delete', function(req, res) {
        res.json(req.body);
    })
    //配置服务端口
const port = 8888;
app.listen(port, () => {
    console.log('Express server listening on port ' + port);
});

进入api.js所在的目录下,执行下面的命令运行服务,一定要运行服务,不然使用api就会连接失败:

node api.js

热更新: 正常运行node api.js时,如果你更新了接口信息,那么要重新运行一次node api.js,不然刷新页面也渲染不到新的数据,为了解决这个问题,可以用supervisor进行热更新:

在项目中安装了supervisor后,

再进行全局安装一次(可以外部全局装):

yarn add supervisor -g

接着,运行服务时,用 进入api.js所在的根目录下,执行 supervisor app.js,这样就可以做到热更新了

 最后如何调用新建立的两个接口?

http://localhost:8888/api/userinfo?age=1

http://localhost:8888/api/delete

 我使用的是axios

可以在项目中执行以下命令:

yarn  add axios --save

 然后执行下面的代码就可以了(记得导入axios再使用):

 

        axios({
          method: 'GET',
          url: 'http://localhost:8888/api/user',
          params:{age:1},
          dataType: 'json'
        }).then(res => {
          console.log(res);
        }).catch(err => {

        })
        //post请求
        axios({
          method: 'post',
          url: 'http://localhost:8888/api/delete',
          data: {
            name: 'lihua',
            age: '45'
          }
        }).then(res => {
          console.log(res);
   
        }).catch(err => {

        });

运行项目,查看浏览器,可以看到接口已经被调用,也能看到我们所写进去的数据:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Node.js项目中封装axios的步骤如下: 1. 安装axios:在项目根目录下执行命令`npm install axios --save`。 2. 创建axios实例:在项目根目录下新建一个`api.js`文件,使用axios.create()方法创建一个axios实例,可以设置默认的配置项,如请求头、超时时间等。 ```javascript const axios = require('axios'); const instance = axios.create({ baseURL: 'https://some-domain.com/api/', timeout: 1000, headers: {'X-Custom-Header': 'foobar'} }); module.exports = instance; ``` 3. 封装API请求:在`api.js`文件中,按照业务逻辑封装API请求方法,可以将请求参数和请求头封装成一个对象,方便调用。 ```javascript const axios = require('axios'); const instance = axios.create({ baseURL: 'https://some-domain.com/api/', timeout: 1000, headers: {'X-Custom-Header': 'foobar'} }); function login(username, password) { return instance.post('/login', { username: username, password: password }); } function getUserInfo(token) { return instance.get('/user', { headers: { 'Authorization': `Bearer ${token}` } }); } module.exports = { login, getUserInfo }; ``` 4. 使用API请求:在业务代码中,通过require()方法引入`api.js`文件中封装API请求方法,进行调用。 ```javascript const api = require('./api.js'); api.login('username', 'password') .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); api.getUserInfo('token') .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); ``` 以上就是在Node.js项目中封装axios的基本步骤,通过封装API请求,可以更好地管理和维护项目中的接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值