Home  >  Article  >  Web Front-end  >  How to build a simple server using nodejs

How to build a simple server using nodejs

PHP中文网
PHP中文网Original
2017-06-22 14:38:581774browse

Use nodejs to build a simple server

Nodejs advantages: high performance (reading and writing files) and strong data manipulation capabilities
Official website: www.nodejs.org
Verify whether the installation is successful: cmd command Enter node -v in the line. If the version number is displayed, the installation is successful.

[Common commands]

Switch drive letter d:
Enter the folder cd nodejs
Return to the previous directory cd..
Clear screen cls
Display directory dir
Copy file name, select right-click--Copy
Historical operation up arrow
Execute file node file name (in the file folder directory)
Stop the command line ctrl+c

Nodejs can use ECMAScript, read and write files, database operations, and build servers
What nodejs cannot do is: DOM, BOM

Use node to build A server:

//1、引入模块  使用的http服务协议是RFC2616  nodejs的作者已经写好了,直接引入就行
var http = require('http');
//引入文件读写模块fs
var fs = require('fs');
//2、创建服务器    函数的参数req是发送给服务器的请求,res是服务器的相应
var httpObj = http.createServer(function(req,res){
    //编写url  其中index.html是要服务器读取的文件
    var url = req.url=='/'?'index.html':req.url;
    //开始文件读取,参数分别是完整的url 编码 和读取完毕执行的函数,注意前后台编码需要一致
    fs.readFile('www/'+url,'utf-8',function(err,data){
        //res.write服务器的相应,当成功的时候,服务器会传输一个data数据,相应结束需要end
        if(err){ 
            res.write('404,您访问的页面不存在');
            res.end();    
        }else{
            res.write(data);
            res.end();    
        }
    });
});
//监听端口
httpObj.listen(80);

Use nodejs to write a sql statement

//和搭建服务器一样,需要先引入模块,mysqle是外生的模块(提前在node中下载),MySQL模块会告诉服务器我们需要add还是get
//1、引入模块,这里多引入了一个mysql模块
var http = require('http');
var fs = require('fs');
var mysql = require('mysql');
//2、连接服务器使用createServer,同样参数也是req和res
var httpObj = http.createServer(function(req,res){
    var url = req.url=='/'?'index.html':req.url;
    console.log(url);
    //给前端提供一个json 写前端接口
    //这里多了地址、用户名、密码和数据库
    if(url.split('?')[0]=='/article'){
        //console.log('我要给前端数据接口');
        //1.建立连接
        var db = mysql.createConnection({
            //地址
            host:'localhost',
            //用户名
            user:'root',
            //密码
            password:'',
            //数据库
            database:'study'
        });
        //3、编写sql语句,就是在想请求的时候告诉服务器我们需要add还是get
        var sql = 'SELECT * FROM user';
        //3.执行sql返回结果
        db.query(sql,function(err,data){
            if(err){
                console.log('失败');
            }else{
                //console.log(data[0].username);
                //console.log(JSON.stringify(data));
                res.write(JSON.stringify(data));
                res.end();
            }
        });
    }else{
        //读取页面
        fs.readFile('www/'+url,'utf-8',function(err,data){
            if(err){ 
                res.write('404,您访问的页面不存在');
                res.end();    
            }else{
                res.write(data);
                res.end();    
            }
        });
    }
});
//4、监听端口
httpObj.listen(3000);


The above is the detailed content of How to build a simple server using nodejs. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn