Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der grundlegenden NodeJS-Betriebsmethoden

Detaillierte Erläuterung der grundlegenden NodeJS-Betriebsmethoden

小云云
小云云Original
2018-03-20 11:08:243282Durchsuche


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.

Erste Einführung in NodeJS

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.

Normaler Betrieb

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 ein Beispiel für NodeJS, das 1680210 Lotterielose sammelt und in der Datenbank speichert

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 } } }

Eingeführtes Cheerio-Modul zum Sammeln und Verarbeiten komplexerer Daten, Crawler-Website

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 nodejs, um Webseiten zu erstellen und Routing-Funktionen zu implementieren

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

Wie NodeJS Daten über http

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)
}

PHP-Seite an PHP sendet Empfangen Von Nodejs bereitgestellte Informationen

    public function nodejs_get_data(){
        $data= json_decode(file_get_contents('php://input'),true);        //对$data数据的相关操作
    }

Zusammenfassung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn