http服务器

  • 简单的请求。不管任何请求都是相同的响应结果。 ```javascript const http = require(‘http’); var server = http.createServer();

//监听端口号 server.listen(3000, (params) => { console.log(‘服务器启动’); });

//对客户端的请求,响应处理 server.on(‘request’, (request, response) => { //获取客户端的url,默认是根目录 console.log(request.url); //output: /

  1. //给客户端发送响应数据
  2. response.write('chen');
  3. response.write('qian');
  4. //告诉客户端响应数据结束,可以给用户展示数据。
  5. response.end();

});


- 对不同的请求资源路径,响应不同的结果。
```javascript
const http = require('http');
var server = http.createServer();

//监听端口号
server.listen(3000, (params) => {
    console.log('服务器启动');
});

//对客户端的请求,响应处理
server.on('request', (request, response) => {
    const url = request.url;
    if (url === '/') {       
        response.end('/');
    } else if (url === '/index') {   
        response.end('/index');
    } else if (url === '/ha') {
      //响应的数据必须是字符串。
        const a = {
            name: 'chen'
        };
        response.end(JSON.stringify(a));
    } else {
        response.end('404')
    }
});
  • 配置响应头字段、得到请求的端口号。 ```javascript const http = require(‘http’); var server = http.createServer();

//监听端口号 server.listen(3000, (params) => { console.log(‘服务器启动’); });

//对客户端的请求,响应处理 server.on(‘request’, (request, response) => { //获取请求端口
const port = request.socket.remotePort; //配置响应头
response.setHeader(‘Content-Type’, ‘text/plain; charset=utf-8’); });


- 配置响应的资源类型
```javascript
//对客户端的请求,响应处理
server.on('request', (request, response) => {
  //text/plain浏览器按照普通文本解析
      response.setHeader('Content-Type', 'text/plain; charset=utf-8')
    response.end('<h1>陈前</h1>')
  //text/html浏览器按照html解析
    response.setHeader('Content-Type', 'text/html; charset=utf-8')
    response.end('<h1>陈前</h1>')
});
  • 读取文件中的数据作为响应。 ```javascript const http = require(‘http’); const fs = require(‘fs’); var server = http.createServer();

//监听端口号 server.listen(3000, (params) => { console.log(‘服务器启动’); });

//对客户端的请求,响应处理 server.on(‘request’, (request, response) => { fs.readFile(‘index.md’, (err, data) => { response.end(data); }) });


- html模板渲染
```javascript
const http = require('http');
const fs = require('fs');
const template = require('art-template');

const server = http.createServer();
server.listen('3000', () => {
    console.log('服务器启动')
});
server.on('request', (req, res) => { 
    fs.readFile('./index.html', (err, data) => {
        if (err) {
            res.end('404');
        } else {
            const render = template.render(data.toString(), {
                add: 'chen'
            });
            res.setHeader('Content-Type', 'text/html; charset=utf-8');
            res.end(render);
        }
    })
})

服务端渲染

本质上就是在后端使用模板渲染。

  • 服务端渲染有利于SEO
  • 客户端渲染速度更快

    连接数据库系统服务器

    ```javascript //首要条件:本地服务器必须启动。 var mysql = require(‘mysql’); var connection = mysql.createConnection({ host : ‘localhost’, user : ‘root’, password : ‘293244’, database : ‘myemployees’ });

connection.connect();

connection.query(‘SELECT * FROM departments‘, function (error, results, fields) { if (error) throw error; console.log(‘The solution is: ‘, results); });

connection.end(); ```