Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der grundlegenden NodeJS-Betriebsmethoden
Frühere Projekte nutzten PHP für die Hochfrequenzerfassung und -abrechnung, was die Effizienz unseres PHP erheblich verringerte und die PHP-Blockierung verhinderte, dass unsere Webseiten normal ausgeführt werden konnten. Finden Sie also eine Sprache, die PHP für Datenbankoperationen und -sammlungen ersetzen und sich perfekt in PHP integrieren lässt.
Node.js ist eine JavaScript-Laufzeitumgebung, die auf der Chrome V8-Engine basiert. Node.js verwendet ein ereignisgesteuertes, nicht blockierendes I/O-Modell, was es leichtgewichtig und effizient macht. Der Paketmanager npm von Node.js ist das weltweit größte Open-Source-Bibliotheks-Ökosystem.
NodeJS, genau wie unser PHP-Composer, können Sie den Befehl npm verwenden, um NodeJS-bezogene Plug-Ins herunterzuladen.
Sie können das Front-End-Javascript nur zur Bedienung grundlegender Funktionen verwenden, und die Lernkosten werden erheblich reduziert.
nodejs Link-Datenbank
Zu diesem Zeitpunkt verlassen wir uns auf npm, um das MySQL-Modul herunterzuladen
Wechseln Sie zu unserem Projekt, npm install mysql -save
Erstellen Sie eine Datei, die sql mysql.js ausführt
//连接数据库var mysql = require('mysql');var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'root', database:'carbird'}); connection.connect();//查询connection.query('select * from `think_order`', function(err, rows, fields) { if (err) throw err; console.log('查询结果为: ', rows); });//关闭连接connection.end();
Führen Sie js aus. Zu diesem Zeitpunkt können die meisten Funktionen implementiert werden, einschließlich regulärer Abrechnungsfunktionen, die den Druck von PHP teilen, einschließlich der Datenerfassung
Erstellen Sie pacong.js
var http = require("http");var iconv = require('iconv-lite');var option = { hostname: "api.api68.com", path: "/klsf/getLotteryInfo.do?issue=&lotCode=10005"}; var req = http.request(option, function(res) {res.on("data", function(chunk) {console.log(JSON.parse( iconv.decode(chunk, "utf-8") )); }); }).on("error", function(e) {console.log(e.message); }); req.end();
wobei var iconv = require('iconv-lite') ; Dieses Modul erfordert den Download von npm. Eingeführt, um das chinesische verstümmelte Problem zu lösen
Das Ergebnis ist:
{ errorCode: 0, message: '操作成功', result: { businessCode: 0, message: '操作成功', data: { preDrawIssue: 2018030717, preDrawCode: '03,13,10,11,01,18,07,12', drawIssue: 2018030718, drawTime: '2018-03-07 12:01:20', preDrawTime: '2018-03-07 11:51:20', drawCount: 17, firstDragonTiger: 1, lastBigSmall: 0, sumBigSmall: 1, sumNum: 75, sumSingleDouble: 0, fourthDragonTiger: 0, secondDragonTiger: 0, thirdDragonTiger: 1, frequency: '', lotCode: 10005, iconUrl: 'http://webapp.1680180.com/images/icon/3x/gdkl@3x.png', shelves: 0, groupCode: 3, lotName: '广东快乐十分', totalCount: 84, serverTime: '2018-03-07 11:53:50', index: 100 } } }
var express = require('express');var app = express();var request = require('request');var cheerio = require('cheerio'); app.get('/', function(req, res) { request('http://www.zhongjiantang.com/index.php?c=detail&id=57', function(error, response, body) { if (!error && response.statusCode == 200) { $ = cheerio.load(body); res.json({ cat: $('h1').text() }); } }) });var server = app.listen(3000, function() { console.log('listening at 3000'); });
Kombiniert mit nodejs sql Der Vorgang kann Daten in die Datenbank oder andere verwandte Vorgänge einfügen
Verwenden Sie npm, um Express einzuführen
Erstellen Sie ein web.js
var express = require('express');var app = express();// 主页输出 "Hello World"app.get('/', function (req, res) { console.log("主页 GET 请求"); res.send('Hello GET'); })// POST 请求app.post('/', function (req, res) { console.log("主页 POST 请求"); res.send('Hello POST'); })// /del_user 页面响应app.get('/del_user', function (req, res) { console.log("/del_user 响应 DELETE 请求"); res.send('删除页面'); })// /list_user 页面 GET 请求app.get('/list_user', function (req, res) { console.log("/list_user GET 请求"); res.send('用户列表页面'); })// 对页面 abcd, abxcd, ab123cd, 等响应 GET 请求app.get('/ab*cd', function(req, res) { console.log("/ab*cd GET 请求"); res.send('正则匹配'); })var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("应用实例,访问地址为 http://%s:%s", host, port) })
Wir können auf die Antwortseite zugreifen, indem wir auf 127.0.0.1:8081 zugreifen, oder
Anwendung verwandter Vorgänge der Datenbank ausführen
Klicken Sie hier, um die Kapselungsdatei herunterzuladen
Schauen wir uns zunächst die Verwendung an
db.select({ table: '数据表', where: '字段名称='查询条件', success: function (result) { //查询成功之后相关操作 } ,})
Nehmen Sie „select“ als Beispiel
Erstellen Sie SQL:
exports.select = function(obj){ if(!obj){ log('对象不存在'); return; } if(!obj.hasOwnProperty('field')){ obj.field ="*"; } var Sql = 'SELECT '+obj.field+' FROM '+obj.table ; if(obj.hasOwnProperty('where')){ Sql+=' WHERE '+obj.where; } if(obj.hasOwnProperty('limit')){ Sql+=' LIMIT '+obj.limit; } // console.log(Sql); db_query(Sql,obj); };
SQL ausführen:
function db_query(Sql,obj){ var db_client=mysql.createClient(config.dbinfo); db_client.query(Sql,function(err,data){ if(err){ if(obj.error){ if(obj.hasOwnProperty('error')){ obj.error(err); } }else{ log('数据库出错:' + err.message); } }else{ if(obj.hasOwnProperty('success')){ obj.success(data); } } if(obj.hasOwnProperty('callback')){ obj.callback(err,data); } }); db_client.end(); }
So verweisen Sie auf eine gepackte js-Datei
var db = require('db'),
Zusammenfassung: Der Datenbankbetrieb ist ein asynchroner Prozess. Es kann die Arbeitseffizienz von NodeJS erheblich verbessern, während
ein asynchrones Beispiel analysiert
//代码示例3//注意还是那个Add,精髓也在这里,随后说到function Add(a, b){ return a+b; }//LazyAdd改变了,多了一个参数cbfunction LazyAdd(a, cb){ return function(b){ cb(a, b); } }//将Add传给形参cbvar result = LazyAdd(1, Add)// 这个时候去做一些其他的程序,等条件成立之后再去执行result = result(2); // => 3
function requestKj(number) { var postData = JSON.stringify(number); var option = { host: 网址, path: 地址, method: 'POST', headers: { "Content-Type": 'application/json', "Content-Length": Buffer.byteLength(postData) } }; var req = http.request(option, function (res) { res.on('data', function () { }); res.on('end', function () { console.log('成功前端给php'); }); }); req.write(postData); req.end(); setTimeout(function () { yuegengxin(number); },1000) }
public function nodejs_get_data(){ $data= json_decode(file_get_contents('php://input'),true); //对$data数据的相关操作 }
Nodejs ist immer noch die Spitze des Eisbergs, und es gibt viel zu lernen.
nidejs-Sammlung Api-Demo
nodejs-Master-Blog-Tutorial
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der grundlegenden NodeJS-Betriebsmethoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!