使用node写个后台接口给自己用(post和get)

128 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

前言

前端工程师经常会有一个烦恼,就是一个项目啥都写完了奈何没有后端给自己写数据,这时候用前端人的后端语言–node.js写给接口自己用啥烦恼都没有。

简单示例

先用npm init初始化一个项目,然后在该项目里创建app.js文件:

var express = require('express');
const bodyParser = require("body-parser");
var app = express();
// 解析以 application/json 和 application/x-www-form-urlencoded 提交的数据
var jsonParser = bodyParser.json();
var urlencodedParser = bodyParser.urlencoded({
	extended: false
});
app.all('*', function(req, res, next) { //设置跨域访问
	res.header("Access-Control-Allow-Origin", "*");
	res.header("Access-Control-Allow-Headers", "X-Requested-With");
	res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
	res.header("X-Powered-By", ' 3.2.1');
	res.header("Content-Type", "application/json;charset=utf-8");
	next();
});
var infor = [ //传前端的数据
	{
		name: 'jay',
		age: 20,
		sex: '男',
		hobby: 'basketball'
	},
]

var objA = {
	'name': 'a',
	'age': '18',
	'sex': '男'
}

// get请求
app.get('/api', function(req, res) {
	console.log(req.query) // 请求参数
	res.status(200),
		res.json({
			data: infor,
			code: 200,
			message: "success"
		})
})
// post请求
app.post('/api', urlencodedParser, function(req, res) {
	if (req.body.name == 'a') {
		res.json(objA)
	} else {
		res.json(infor)
	}
});

//配置服务端口
var server = app.listen(3000, function() {
	var host = server.address().address;
	var port = server.address().port;
	console.log('listen at http://%s:%s', host, port)
})

上面用到了express框架和body-parser,所以要install一下,直接在命令行里安装并写入依赖里:

npm install express --save
npm install body-parser --save

运行

把项目运行起来

node app.js

请求

html文件中发送请求:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title></title>
	</head>
	<body>
		<button onclick="sendGet()">发送Get请求</button>
		<button onclick="sendPost()">发送Post请求</button>
	</body>
	<script src="jquery.min.js"></script>
	<script>
		function sendGet() {
			$.ajax({
				type: 'get',
				url: 'http://localhost:3000/api?id=11',
				success: function(data) {
					console.log(data)
				},
				error: function(err) {
					console.log(err)
				}
			})
		}

		function sendPost() {
			$.ajax({
				type: 'post',
				data:{name:"a"},
				url: 'http://localhost:3000/api',
				success: function(data) {
					console.log(data)
				},
				error: function(err) {
					console.log(err)
				}
			})
		}
	</script>
</html>

打开控制台如图:
在这里插入图片描述