nodejs express 调java接口_Node+express实现后台服务接口

一、准备工作

创建代码目录,依次执行以下操作

1.(若没有安装过)安装node

2.npm init(package.json)

3.安装express(请求)npm install express –save

二、编码

1.http封装。http.js代码如下:

1 const express = require('express')2 const app =express()3

4 //设置跨域

5 app.all('*', (req, res, next) =>{6 res.header('Access-Control-Allow-Origin', '*')7 res.header('Access-Control-Allow-Headers', 'X-Requested-With')8 res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS')9 res.header('X-Powered-By', '3.2.1')10 res.header('Content-type', 'application/json;charset=utf-8')11 next()12 })13

14 //exports.app

15 module.exports = app

2.模拟数据。这里先采用构造json数据结构的方式,data.js代码如下:

1 const res =[{2 data:213,3 num:444,4 age:12

5 }, {6 data:456,7 num:678,8 age:13

9 }]10

11 module.exports = res

3.写接口。demo1.js代码如下

1 const app1 = require('../http')2 const res1 = require('./data')3 console.log(app1)4 //接口1

5 app1.get('/getTest1', (req, res) =>{6 res.status(200)7 res.json(res1)8 })9

10 //配置服务端口

11 const server = app1.listen(3000, () =>{12 const host =server.address().address13 const port =server.address().port14 console.log('Listen at http://%s:%s', host, port)15 })

4.运行。3个文件相关路径自己视情况配置。运行demo1.js文件开启服务,node ./demo1/demo1.js。此时打开浏览器,在地址栏输入http://localhost:3000/getTest1,可以看到接口返回的结果。

三、扩展——mysql

1.安装。npm installmysql -S

2.引入mysql。另外req.body需要对表单数据进行解析,所以还需引入body-parser

mysql.js如下:

//创建数据库链接

const mysql = require('mysql')//注意隐私

const conn =mysql.createConnection({

host:'XXX',

user:'XXX',

password:'XXX',

database:'XXX'})//注册 解析表单的body-parser//const bodyParser = require('body-parser')//conn.use(bodyParser.urlencoded({extended:false}))

module.exports = conn

sql.js如下:

functionsqls() {this.GETALL_SQL_NODETEST = 'select * from nodeTest where isdelete=0'

this.GETBYID_SQL_NODETEST = 'select * from nodeTest where id=?'}

module.exports= sqls

3.编写接口

demo2.js如下:

1 /*document.all.filter(e => {2 return e.style.font-family.toLowerCase().indexOf('yahei') > -1 || e.style.font-family.toLowerCase().indexOf('雅黑') > -13 })*/

4 const conn1 = require('../mysql')5 const sqls = require('./sql')6 const app = require('../http')7

8 //注册 解析表单的body-parser

9 const bodyParser = require('body-parser')10 app.use(bodyParser.urlencoded({extended:false}))11

12 //配置服务端口

13 const server = app.listen(3000, () =>{14 const host =server.address().address15 const port =server.address().port16 console.log('Listen at http://%s:%s', host, port)17 })18

19 const sqlObj = newsqls()20

21 //getAll

22 app.get('/api/getAll', (req, res) =>{23 const sql =sqlObj.GETALL_SQL_NODETEST24 console.log(sql)25 conn1.query(sql, (err, result) =>{26 console.log(result)27 if (err) return res.json({err_code: 0, msg: '查询失败', affectedRows: 0})28 res.json({29 err_code: 1, msg: result, affectedRows: 0

30 })31 })32 })33

34 //getById

35 app.get('/api/getById', (req, res) =>{36 const id =req.query.id37 const sqlStr =sqlObj.GETBYID_SQL_NODETEST38 conn1.query(sqlStr, id, (err, results) =>{39 if(err) return res.json({err_code: 1, msg: '获取数据失败', affectedRows: 0})40 if(results.length !== 1) return res.json({err_code: 1, msg: '数据不存在', affectedRows: 0})41 res.json({42 err_code: 1,43 msg: results[0],44 affectedRows: 0

45 })46 })47 })

这里只列举了两个查询接口,其他接口暂不赘述。同理,运行demo2.js,调用接口,可以看到成功结果。

四、遇到的一些问题

1.SyntaxError: Unexpected token export

原因:export default res

Node和浏览器端所支持的模块规范不同

解决方法:module.exports = res

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值