老美都是纸老虎 發表於 2020-6-10 10:10:00

node.js 写一个简单的接口

<h1 class="_1RuRku">如何使用nodejs写一个接口</h1>
<p>很多时候后台没有数据的时候,前端需要自己模拟后台接口,但是对于我们这些前端来说学习成本有点大,因为后台不管java 还是php都是一门语言,需要时间去学习的,所以我们可以用node.js来模仿一下后台数据,下面说一下具体流程</p>
<p>1、需要安装node.js 没有的自行下载https://nodejs.org/zh-cn/</p>
<p>2、需要安装npm 因为好多配置需要用到</p>
<p>3、可以使用 npm -v 和 node -v 来检查是否安装成功</p>
<p>准备工作差不多了那就开始上代码</p>
<p>1、首先创建一个空文件夹 名字自己随便命名 然后终端打开 我这命名为 node_demo</p>
<p>2、初始化项目 npm init 如果慢的话,推荐使用 淘宝镜像&nbsp;npm install -g cnpm --registry=https://registry.npm.taobao.org 然后使用cnpm init</p>
<p>3、安装各种依赖 cnpm install express --save 这是创建服务的如果是最简单的可以只安装这一个就可以了</p>
<p>4、cnpm install cors --save 解决跨域问题</p>
<p>5、cnpm install body-parser --save 获取前台传参的参数</p>
<p>6、cnpm install mysql --save 数据库</p>
<p>7、cnpm install&nbsp;multer --save 中间件上传文件处理formdata类型的表单数据</p>
<p>8、cnpm install&nbsp;cookie-parser --save cookie的使用</p>
<p>构建完成以后目录结构 一个node_modules文件夹和package.json文件</p>
<p>package.json文件如下</p>
<p><img src="https://img2020.cnblogs.com/blog/1852597/202006/1852597-20200610093931992-401045679.png"></p>
<p>9、创建app.js 名字随便定义 启动项目 node app.js 内容如下</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">导入express框架</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> express = require(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">express</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">var</span> app =<span style="color: rgba(0, 0, 0, 1)"> express();
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">解决跨域问题</span>
<span style="color: rgba(0, 0, 255, 1)">const</span> cors = require(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">cors</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 中间件 获取参数的</span>
<span style="color: rgba(0, 0, 255, 1)">const</span> bodyParser = require(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">body-parser</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">}));
app.use(cors());
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取json数据</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> data = require(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">./data.json</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
app.all(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">*</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, function(req, res, next) {
    res.header(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Access-Control-Allow-Origin</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">*</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
    res.header(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Access-Control-Allow-Headers</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">X-Requested-With</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
    res.header(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Access-Control-Allow-Methods</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">PUT,POST,GET,DELETE,OP0TIONS</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
    res.header(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">X-Powered-By</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">3.2.1</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
    res.header(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json;charset=utf-8</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
    next();
});


app.post(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/123</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, function(req, res) {</span><span style="color: rgba(0, 0, 0, 1)">
    res.status(</span><span style="color: rgba(128, 0, 128, 1)">200</span><span style="color: rgba(0, 0, 0, 1)">),
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">json格式</span>
<span style="color: rgba(0, 0, 0, 1)">    res.json(data)
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">传入页面
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> res.send()</span>
<span style="color: rgba(0, 0, 0, 1)">});

</span><span style="color: rgba(0, 0, 255, 1)">var</span> server = app.listen(<span style="color: rgba(128, 0, 128, 1)">3000</span><span style="color: rgba(0, 0, 0, 1)">, function() {
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> host =<span style="color: rgba(0, 0, 0, 1)"> server.address().address;
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> port =<span style="color: rgba(0, 0, 0, 1)"> server.address().port;

    console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">服务器启动成功了端口是</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, port);
})</span></pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1852597/202006/1852597-20200610094502588-2057439830.png"></p>
<p>我这是使用了 npm start 是因为我在上面配置了</p>
<p><img src="https://img2020.cnblogs.com/blog/1852597/202006/1852597-20200610094740066-960123102.png"></p>
<p>10、创建json数据 data.json 数据根据自己的需要填写 这边写的 简单的&nbsp;{"name": "尼古拉丁 * 赵四"}</p>
<p><img src="https://img2020.cnblogs.com/blog/1852597/202006/1852597-20200610094950015-1000105509.png"></p>
<p>11、开始请求数据创建 index.html</p>
<div class="cnblogs_code">
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;

    &lt;head&gt;
      &lt;meta charset=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">UTF-8</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
      &lt;title&gt;&lt;/title&gt;
      &lt;script src=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">jquery.js</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/script&gt;
    &lt;/head&gt;

    &lt;body&gt;
      &lt;button type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">button</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">class</span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">btn</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;按钮&lt;/button&gt;
      &lt;script type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">text/javascript</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 0, 0, 1)">
            $(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">.btn</span><span style="color: rgba(128, 0, 0, 1)">"</span>).on(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">click</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,function(){
                $.ajax({
                  type: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">post</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                  url: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">http://127.0.0.1:3000/123</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                  data:{
                        id:</span><span style="color: rgba(128, 0, 128, 1)">88</span><span style="color: rgba(0, 0, 0, 1)">,
                        name:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">pp</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
                  },
                  </span><span style="color: rgba(0, 0, 255, 1)">async</span>: <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
                  success: function(res) {
                        console.log(res)
                  }
                });
            })
            
      </span>&lt;/script&gt;
    &lt;/body&gt;

&lt;/html&gt;</pre>
</div>
<p>12、点击 按钮 接口就请求成功了<img src="https://img2020.cnblogs.com/blog/1852597/202006/1852597-20200610095308320-741529486.png"></p>
<p>&nbsp;</p>
<p>git 地址</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div id="vt100">
<pre><span class="od">https://gitee.com/songyulin11/node_demo.git</span></pre>
</div>
</td>
</tr>
</tbody>
</table><br><br>
来源:https://www.cnblogs.com/qq976864507/p/13083311.html
頁: [1]
查看完整版本: node.js 写一个简单的接口