https://blog.csdn.net/jtwqwq/article/details/129299974
我是根据这篇文章基本没有改动的copy到我小程序中测试,编译时一直报错说
net::ERR_CONNECTION_REFUSED
我检查了防火墙,port:3000没有占用,然后我又专门在策略里把这个端口的权限全开了,还是不行
这是我修改后的
//index.js
wx.request({
method: 'GET',//这里要和 server.js 定义的 post or get 一致!!!
url: 'http://ipv4地址:3000/getUser',//这里的 ip 地址不是数据库的地址,而是你的电脑本地的地址,因为这一步的操作是要找到本地 nodejs 服务器。getUser 要和 server.js 中定义的方法名一致。
data: {
//这里面是传入参数。比如我们要 select * from data where openid= 给定的 openid,就可以从这里传入
},
success: function (res) {//成功获取到值,返回一个 res 对象。如果不知道 res 对象里面包含什么,可以先输出 res 对象看一下其中都包含什么
console.log(res);
},
fail: function () {//没有获取到值,说明这中间出问题了。
console.log("获取失败");
}
})
//server.js
const express=require('express')
const bodyParser =require('body-parser')
const app=express()
const mysql = require('mysql')
const IPAddress='127.0.0.1'//因为这里是要链接远程数据库,ip 地址是 mysql 的地址!!本地就是 127.0.0.1,服务器上就自己找找看
const UserName='root'
const PWD='mysql'
const DBName='test'
app.use(express.json())
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
//这上面一段固定的,[] 的部分需要根据自己数据库的信息修改
//处理get请求。这里是一个 get 请求的方法演示,作用是查询 table1 表中的所有数据并返回。
app.get('/getUser',(req,res)=>{ //这里的是 get 方法 getUser,对应了刚才的页面发来的请求。就会执行这个方法。
//参数传入是在 req.body 对象里面。比如上面的语句是获取传入的 openid 变量,并且我们新定义一个叫 openid 的变量存储传入的 openid 变量
var connection=mysql.createConnection({
host:IPAddress,
port: 3306, //端口号,mysql 固定3306
user:UserName,
password:PWD,
database:DBName
})//配置连接的属性
connection.connect();//尝试连接
connection.query("select * from park",function(error,results,fields){//执行查找语句
if(error) console.log(error);//执行失败的话
res.json(results)
console.log(results)
})
connection.end();//断开连接
})
app.listen(3000,()=>{//这是一个监听端口,会输出监听到的信息。上面的 console.log 就会在这里输出
console.log('server running at http://'+IPAddress+':3000')
})