精华内容
下载资源
问答
  • 2020-03-17 18:26:34
    var express = require('express');
    var router = express.Router();
    var mongodb = require("../../utils/mongodb")
    var bcrypt = require("../../utils/bcrypt")
    var jwt = require("../../utils/jwt")
    /* GET home page. */
    router.post('/', function(req, res, next) {
        //1.获取前端传递来的用户名与密码
        let {username,password} = req.body
        //2.验证必传参数
        if(!username || !password){
            res.send({
                err:1,
                msg:"用户名与密码为必传参数..."
            })
            return
        }
        //3.需要查询数据库
        mongodb.open({
            collectionName:"user"
        }).then(({collection,client})=>{
            //进行查询操作
            collection.find({username}).toArray((err,result)=>{
                if(err){
                    res.send({err:1,msg:"集合操作失败..."})
                    client.close()
                }else{
                    if(result.length>0){
                        //3-1 代表用户在数据库是存在的 ==> 登录的密码与数据库里面的密码进行校验 ==> 登录成功(token)
                        let flag = bcrypt.compareSync(password,result[0].password)
                        if(flag){ //说明密码输入正确
                            //生成token令牌
                            let token = jwt.sign({username,_id:result[0]._id})
                            delete result[0].username
                            delete result[0].password
                            res.send({
                                err:0,
                                msg:"恭喜您,登录成功!",
                                token,
                                data:result[0]  
                            })
                        }else{
                            res.send({err:1,msg:"用户名或者密码输入有误..."})
                        }
                        client.close()
                    }else{ //3-2 用户在数据库里面不存在
                        res.send({err:1,msg:"此用户不存在,请注册!"})
                        client.close()
                    }
                }
            })
        }).catch(err=>{
            res.send({err:1,msg:"数据库连接失败..."})
        })
    });
    
    module.exports = router;
    
    
    更多相关内容
  • 通过node.js写接口

    2022-04-28 20:29:03
    如果要通过node.js写接口的话,首先我们需要借助一个框架--express,这个框架可以帮助我们快速的创建web服务器,所以我们需要通过npm下载这个包。 expressget接口 // 引入express const express = require('...

    如果要通过node.js来写接口的话,首先我们需要借助一个框架--express,这个框架可以帮助我们快速的创建web服务器,所以我们需要通过npm下载这个包。

    express写get接口

    // 引入express
    const express = require('express')
    // 调用express()
    const app = express()
    
    // 设置请求对应的处理函数--当客户端以get方法请求,
    //请求地址后面需要加/getbooks才能访问到响应后的数据
    //app.get('/getbooks')相当于添加事件监听,当用户以get方法请求时,地址后面需要跟/getbooks,后面的回调函数才会执行
    app.get('/getbooks', function (request, response) {
      let books = {
        "status": 200,
        "msg": "获取图书列表成功",
        "data": [
          {
            "id": 1,
            "bookname": "西游记",
            "author": "吴承恩",
            "publisher": "北京图书出版社"
          },
          {
            "id": 2,
            "bookname": "红楼梦",
            "author": "曹雪芹",
            "publisher": "上海图书出版社"
          },
          {
            "id": 3,
            "bookname": "三国演义",
            "author": "罗贯中",
            "publisher": "北京图书出版社"
          }
        ]
      }
    //response.send是express框架提供的方法,相当于结束本次请求。
      response.send(books)
    })
    
    // 监听端口,启动web服务
    app.listen(8000, function () {
      console.log('app listening on port 8000!')
    })

    通过localhost:8000/getbooks成为访问到数据。

    此上,我们便简单的实现了一个get请求来获取到接口的数据。

    express写post接口--键值对参数

    当请求头中的content-type为x-www-form-urlencoded时,表示上传的为普通键值对参数

    // 引入express
    const express = require('express')
    // 调用express()
    const app = express()
    
    // 使用中间件--请求的格式为普通键值对格式
    app.use(express.urlencoded())
    
    // 接口2--post普通键值对格式a=1&b=2
    app.post('/addbooks', (request, response) => {
      //request.body发送的请求的参数
      console.log('请求返回', request.body)
      //response.send响应回来的参数
      response.send({ a: 1 })
    })

    因为这里我们是通过post请求传递参数的,所以这里我们不能继续向上面的get请求一样通过地址栏测试了,这里我会借助一个测试接口的工具来进行测试,用到的工具是--apifox。

    这里我们直接发送请求,我们会向后端发送两个参数,下面是得到响应后的参数

    我们去到小黑窗可以看见发送来的请求参数

    express写post接口--json格式的参数

    // 引入express
    const express = require('express')
    // 调用express()
    const app = express()
    
    // 会自动加入req.body属性,这个属性中就包含了post请求所传入的参数,格式为json格式
    app.use(express.json())
    
    // 接口3--post-json格式
    app.post('/add-json', (request, response) => {
      console.log('请求返回', request.body)
      response.send({ "name": "xxx" })
    })

    这里我们依旧会加入一个中间件来得到请求的参数。

    测试接口

    express写post接口--form-data文件上传

    // 引入express
    const express = require('express')
    // 调用express()
    const app = express()
    
    // 引入包
    const multer = require('multer');
    // 配置
    // uploads表示一个目录名,你也可以设置成其它的
    const upload = multer({ dest: 'uploads/' }) // 上传的文件会保存在这个目录下
    
    // 接口4--通过post请求进行文件的上传
    app.post('/add-file', upload.single('img'), (request, response) => {
      console.log(request.body)
      console.log(request.file)
      response.send({ name: "小红" })
    })

    测试接口

    响应的参数

    展开全文
  • 首先,我试了一下以前的过期的证书,在开发者工具里模拟的时候可以正常访问接口,在手机里测试时候微信小程序的wx.request是会报SSL握手失败的错误(request error : request: fail ssl hand shake error),所以只能...
  • node.js连接数据库写接口

    千次阅读 2022-03-15 14:07:43
    //初始化 ...connect.js const mysql = require('mysql') const express = require('express') const app = express() const router = express.Router(); // 解析参数 const bodyParser = require('body
    //初始化
    npm init
    //安装依赖
    npm install body-parser express mysql cors -S 
    

    引入路由,把页面拆分开:

    connect.js

    const mysql = require('mysql')
    const express = require('express')
    const app = express()
    const router = express.Router();
    
    // 解析参数
    const bodyParser = require('body-parser')
    let login = true;
    // json请求
    app.use(bodyParser.json())
    // 表单请求
    app.use(bodyParser.urlencoded({extended: false}))
    
    const option = {
        host: 'localhost',
        user: 'root',
        password: 'root',
        port: '3306',
        database: 'yyds',//表名
        connectTimeout: 5000, //连接超时
        multipleStatements: false //是否允许一个query中包含多条sql语句
    }
    let pool;
    repool()
    function Result ({ code = 1, msg = '', data = {} }) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
    // 断线重连机制
    function repool() {
        // 创建连接池
        pool = mysql.createPool({
            ...option,
            waitForConnections: true, //当无连接池可用时,等待(true)还是抛错(false)
            connectionLimit: 100, //连接数限制
            queueLimit: 0 //最大连接等待数(0为不限制)
        })
        pool.on('error', err => {
            err.code === 'PROTOCOL_CONNECTION_LOST' && setTimeout(repool, 2000)
        })
        app.all('*', (_,__, next) => {
            pool.getConnection( err => {
                err && setTimeout(repool, 2000) || next()
            })
        })
    }
    
    module.exports = { app, pool, Result, router }
    
    

    router/login.js

    const { pool, router, Result } = require('../connect')
    
    router.get('/', (req, res) => {
        pool.getConnection((err, conn) => {
            conn.query("SELECT * FROM t_user", (e, r) => {
                if(e) throw error
                res.json(new Result({ data: r }))
            })
            pool.releaseConnection(conn) // 释放连接池,等待别的连接使用
        })
    })
    
    module.exports = router;
    

    入口文件 index.js

    const { app, pool, Result } =require('./connect')
    const login = require('./router/login')
    app.all('*', (req, res, next) => {
        //这里处理全局拦截,一定要写在最上面
        next()
    })
    app.all('/', (req, res) => {
        pool.getConnection((err, conn) => {
            res.json({ type: 'test'})
            pool.releaseConnection(conn) // 释放连接池,等待别的连接使用
        })
    })
    app.use('/login', login)
    app.listen(8088, () => {
        console.log('服务启动')
    })
    
    展开全文
  • 本模块主要实现了对云片服务提供商中给出的node.js平台接口进行了封装并Promise化。 大家可以注册云片进行短信验证测试,充值50元,大概可以发送1000条左右。需要注意:注册成功后,需要进行实名及模板等相关认证,...
  • 网易云接口:(服务器地址: : : ) 基于本接口开发的软件: 新版特性 相对更加稳定,服务器不再过滤参数内容,用户自行解析参数,减少参数解析出错几率 支持平台:QQ音乐,酷狗音乐,酷我音乐,咪咕音乐,具体音乐...
  • node.js写一个简单的数据接口。模拟数据

    在开发中,前端写好页面后,经常需要一些模拟数据来实现页面效果。

    这时候可以使用node.js写一个简单的接口来测试页面效果

    第一步执行命令:

    npm init
    

    第二步起个项目名:

    ceshi_server
    

    接下来全部回车就完事了。

     第三步安装express框架:

    npm i express
    

     大体的框架就已经创建好了。

    接下来创建一个server.js文件

    代码如下:

    // 引入express
    const express = require('express')
    //创建一个app实例对象
    const app = express()
    
    //配置后端路由
    //req 就是 request,就是请求过来的数据。
    //res 就是 response,就是回调信息,要响应回去的数据。
    app.get('/obj',(req,res)=>{
        res.send({
            name:'孙悟空',
            age:99
        })
    })
    
    // listen()端口监听
    app.listen(520,(err)=>{
        if(!err){
            console.log('服务器启动成功了')
        }
    })
    
    
    

     启动项目:

    node server
    

     浏览器输入http://localhost:520/obj

    这样就简单实现用node.js实现一个简单的数据接口

    展开全文
  • Node.js:推荐使用10.x以上LTS版本 包管理器:Yarn(^ 1.19.1),使用Yarn锁定包版本,不要随意升级项目依赖的包版本 初步接口 文件夹名字为server 安装依赖npm i 可联系查看 进入目录代码目录,运行节点索引。接口...
  • 简单、统一、轻巧的 Node.js 版网易云音乐 API
  • Node.js创建简单的接口

    2021-07-31 15:44:29
    2 main.js const express = require('express') const app = express() const router = require('./routerPXL.js') // 为了获取post提交的参数,需要进行下列配置 app.use(express.urlencoded({ extended: false })...
  • 网站「看知乎」后台爬虫的源码,使用node.js编写
  • node.js接口

    2020-07-12 22:30:47
    新建一个文件夹,在此文件夹...写node.js接口之前要了解接口文档 首先先ajax请求 let xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){
  • -node_modules -public -------index.html -server.js localhost:3000/index.html可以访问public下的index.html文件 在后端实现三个接口,分别来处理在index.html中发出的post请求,注意:只需要在后端接收...
  • Browserjet是一款无界面webkit浏览器,采用node.js接口
  • 包含35种轻量级功能,可以获取详细的硬件,系统和操作系统信息(支持Linux,macOS,部分Windows,FreeBSD和SunOS) - 没有npm依赖。
  • Node.js之 express后端接口

    千次阅读 2022-03-09 11:11:05
    1 首先,新建一个Node.js项目,在项目目录下安装express npm install express --save 2 可以用express来建立一个最简单的后端server服务 新建一个server.js文件 const express = require('express'); const app = ...
  • 之后把测试结果,数据类型等等丢给后端就完事了,而且nodeJs对于前端来说根本没什么学习成本,除了nginx和数据库的操作这些,方法等等用JS就可以了,所以觉得有闲余的时间不如学一下。 使用方法 cd index.js目录...
  • @TOC 参考了博客园的这篇文章 稍微改了一下 能跑了 文件结构 下载依赖 npm install body-parser express mysql cors -S ... "start": "hotnode index.js" 后面启动项目就是npm start 最后package.json长这样 packa
  • Node.js接口文档.xlsx

    2020-08-13 17:16:11
    Node.js接口文档,对应https://s-z-q.blog.csdn.net/article/details/107885750
  • git-js 一个轻量级接口,用于在任何node.js应用程序中运行git命令
  • 某音乐接口 api,(极简, 可用, 从获取排行榜到歌曲播放 url).
  • json-server使用第一步:安装node.js第二步:设置npm更改npm的全局安装路径更改npm的缓存路径第三步:全局安装json-server1.根目录下安装我们全局的json-server,2.初始化packjson这个文件3.安装我们需要用到的模块...
  • 阿里云短信发送接口nodejs版本
  • 实现了用户注册登录,发布文章, 编辑文章, 删除文章, 发布评论, 删除评论, 以及编辑和删除的权限, mysql数据库的创建, sql语句Promise封装, markdown编辑, 分页, 上传头像, 支持图片拖动添加, 使用最新的async await ...
  • 接口相关
  • node-hdfs:Node.js HDFS接口

    2021-05-24 12:16:44
    这是用于与Web HDFS界面通信的node.js界面。 如何使用 正在安装 在使用此模块之前,我们需要先安装它 $ npm install --save hdfs247 在不安全的群集上使用 var Hdfs = require ( 'hdfs' ) , localpath = '/tmp/...
  • 简单的mock server,在后台未给出接口之间进行简单的mock
  • Interfake - 快速原型框架用于进行模拟HTTP APIs利用Node.js、命令行和HTTP接口
  • 主要介绍了node.js使用mongoose操作数据库实现购物车的增、删、改、查功能,结合实例形式详细分析了node.js使用mongoose框架操作MongoDB数据实现购物车增删改查相关技巧与使用注意事项,需要的朋友可以参考下
  • 自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选。这篇文章就给大家介绍了关于Node.js如何连接postgreSQL数据库,并进行数据操作的方法,有需要的朋友们可以参考借鉴,下面来一起看看吧。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 124,517
精华内容 49,806
关键字:

node.js写接口

友情链接: CTPtest-master.zip