Ajax实现前后端数据交互(nodejs构建后端接口)_ajax nodejs,从三流物联网嵌入式开发外包到秒杀阿里P7

44 阅读3分钟

链接数据库流程
1.安装mysql模块 : cnpm install mysql
2.在文件中导入mysql模块 : var mysql = require(‘mysql’);
3.使用mysql对象的createConnection方法链接数据库

var mysql = require('mysql'); //导入mysql模块
var connection = mysql.createConnection({
host : '127.0.0.1', //数据库地址
user : 'root', //数据库用户名
password : 'admin', //数据库密码
database : 'logs_manager' //数据库名
});
connection.connect(); //启动链接
//打印出来是一个数据库链接对象,包含了数据库的各种信息
//与我们操作数据库的相关方法
console.info(connection) ;

查询数据库信息
方法:connection.query(sql,function (err, result) {});
Sql:表示要传入的操作数据库测sql语句
Function(){}:表示操作返回查询结果的回调函数

var sql = 'select * from peo where username="ww"';//像数据库查询
var sql = 'update peo set sex ="nvhai" where username="ww"';//像数据库修改
var sql = 'insert into peo values("ww","woman","19")';//添加
var sql = 'delete from peo where username = "ls"';//删除

预编译
其实这里可以写成预编译的方式,可以避免sql注入的问题,所谓预编译就是说对于原本在sql里面写值换成?问号用来占位,然后传入一个数组进去补全这个占位符

也就是connect.query方法会多一个参数,为一个数组,放入第二个位置。

安装express构建服务器
执行命令 cnpm install express 或者 yarn add express
使用express构建服务器

var express = require("express");//构建服务器
var app = express();
app.get("/", function(req, res) {
res.send("Hello World");//向前端发送数据
});
app.listen(8081,function() {
console.log("应用实例,访问地址为 http://127.0.0.1:8081");
});

用post获取,传参,添加到数据库
HTML代码post比get更安全,存储的数据量更大

<body>
    <form action="http://127.0.0.1:8080/add" method="POST">
        <input type="text" name="bookname">
        <input type="text" name="price">
        <input type="text" name="theme">
        <input type="text" name="pages">
        <button>按钮</button>
    </form>
</body>

创建数据库

var mysql = require("mysql");
function getconnect(){
    var connection = mysql.createConnection({
        host : '127.0.0.1', //数据库地址
        user : 'root', //数据库用户名
        password : 'qwerty', //数据库密码
        database : 'opt_test' //数据库名
        });
    return connection;
}
module.exports = getconnect;

利用post实现操作数据库

var newconnect = require("./nofz.js");//拉取数据库,下载的express和mysql不用相对路径
var express = require("express");//构建服务器
var app = express();//执行

//使用bodyParser模块,接收post参数
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());

app.post("/",function(req,res){
   res.send("hello")
})
//增
app.post("/add", function (req, res) {
    console.log(req.body);
    var getcon = newconnect();
    getcon.connect();
    var sql = `insert into books values(?,?,?,?)`
    getcon.query(sql, [req.body.bookname, req.body.price, req.body.theme, req.body.pages], function (flas, trve) {//function的第一个参数是请求对象,第二个参数是响应对象
        if (flas) {
            console.log("注册失败", flas.message);
        }
        if (trve.affectedRows > 0) {//受影响行数大于0,说明操作数据库成功
            console.log("注册成功")
        }
        getcon.end();//结束数据库
    })
    res.send("注册成功");//向前端发送数据
});


**收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。**
![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/6a6845eddc014fa58757f507c5e91c35~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251413&x-signature=EUX%2FQms9TsejdyWgFZqkWUypdnE%3D)
![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/5f4aa42e22a04e6eb1ce8847ab31dbcb~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251413&x-signature=rwRelAYtVgXjC3xxsB3n98DweuU%3D)

**[如果你需要这些资料,可以戳这里获取](https://gitee.com/vip204888)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**