Nodejs搭建服务器及express编写接口

版权声明:本文为博主原创文章,转载需注明出处。 https://blog.csdn.net/jay100500/article/details/86585803

Nodejs用http模块搭建http服务器:

//引入http模块
var http = require("http");
var url = require('url');
//设置主机名
var hostName = '192.168.1.7';
//设置端口
var port = 8092;

//创建服务
var server = http.createServer(function (req, res) {
    var string = url.parse(req.url, true);
    console.log("URL:" + req.url + "  " + string.pathname);
    res.setHeader('Access-Control-Allow-Origin', "*")
    res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    res.setHeader('Content-Type', 'text/plain');
    res.end("hello nodejs");

});
server.listen(port, hostName, function () {
    console.log(`服务器运行在http://${hostName}:${port}`);
});

运行效果:

用Nodejs的express搭建http服务器:

var express = require('express')
var bodyParser = require('body-parser');
//设置主机名
var hostName = '192.168.1.7';//172.50.4.113  192.168.1.130
//设置端口
var port = 8092;//8086
var app = express();
var routes = express.Router();
//设置路由访问路径和静态资源目录
app.use("/a", express.static('public'))
app.use("/a", routes);
// app.use(express.static('./'));
var server = app.listen(port, hostName, (err) => {
    if (err) {
        console.log(err)
    } else {
        console.log(`服务开启成功【端口号:${port}】`)
    }
});

用express搭建GET请求接口:

/**
 * express建立GET接口
 * http://192.168.1.7:8092/a/ab?name='name12'&pwd='123'
 */
routes.get('/ab', (req, res) => {
    var string = url.parse(req.url, true);
    //解析参数
    var params = url.parse(req.url, true).query;
    console.log(params)
    var user = {};
    user.name = params.name;
    user.pwd = params.pwd;
    var responseJson = { name: 'abc', pwd: '123' };
    var response = { status: 2, data: user };
    res.send(JSON.stringify(response));
    console.log("URL:" + req.url + "  " + string.pathname);
    res.status(200).json(response);
    //有数据返回用res.send();
    //无数据返回用res.end();
    // res.end("hello nodejs");
});

用express搭建POST请求接口:

/**
 * express建立POST接口
 */
routes.post('/r', (req, res) => {
    var string = url.parse(req.url, true);
    console.log("URL:" + req.url + "  " + string.pathname);
    //解析参数
    var params = req.body;
    var user = {};
    user.name = params.name;
    user.pwd = params.pwd;
    var response = { status: 1, data: user };
    res.send(JSON.stringify(response));
    res.send('post:' + string.pathname + "  " +
        JSON.stringify(text));
    res.end();
    console.log(req.method);//post
    console.log(req.body);//{ a: '3', b: '4', c: '5' }
    // console.log(req.body.a); //3
    // res.end("hello nodejs");
});

原生GET请求:

/**
 * 原生GET请求
 */
function requestGet() {
    var http = require('http');
    var qs = require('querystring');
    // var data = {
    //     a: 123,
    //     time: new Date().getTime()
    // };//这是需要提交的数据 
    // var content = qs.stringify(data);
    var options = {
        hostname: hostName,
        port: port,
        path: '/getList',// + content
        method: 'GET'
    };
    var req = http.request(options, function (res) {
        // console.log('STATUS: ' + res.statusCode);
        // console.log('HEADERS: ' + JSON.stringify(res.headers));
        // res.setEncoding('utf8');
        // alert('body:' + res.body)
        res.on('data', function (data) {
            console.log('BODY: ' + data);//返回数据
            alert('body:' + data)
        });
    });
    req.on('error', function (e) {
        console.log('problem with request: ' + e.message);
    });
    req.end();
}

原生POST请求:

/**
 * 原生POST请求
 */
function requestPost() {
    var http = require('http');
    var querystring = require('querystring');
    var contents = querystring.stringify({
        name: 'nameuser',
        pwd: '123'
    });
    var options = {
        host: hostName,
        port: port,
        path: '/setList',
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Content-Length': contents.length
        }
    }
    var req = http.request(options, function (res) {
        res.setEncoding('utf8');
        res.on('data', function (data) {
            console.log("data:", data);//返回数据
        });
    });
    req.write(contents);
    req.end();
}

猜你喜欢

转载自blog.csdn.net/jay100500/article/details/86585803