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