Loading... > 包含:前言、安装 node.js环境、安装 express、依赖安装、配置数据库、编写接口、服务器配置 <div class="tip inlineBlock info"> 原创文章,请勿抄袭!思维有限,敬请指正! </div> <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-e2321b148143b7de88c66518731cfdf5100" aria-expanded="true"><div class="accordion-toggle"><span>前言</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-e2321b148143b7de88c66518731cfdf5100" class="collapse in collapse-content"><p></p> 一个合格的前端程序员,要立志抢UI和后端的饭碗![滑稽] <p></p></div></div></div> <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-e82c0b569ce1d00f7ffe6e20382caf7e7" aria-expanded="true"><div class="accordion-toggle"><span>安装 node.js环境</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-e82c0b569ce1d00f7ffe6e20382caf7e7" class="collapse in collapse-content"><p></p> 引言官网:Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境。 官网:[https://nodejs.org/zh-cn/](https://nodejs.org/zh-cn/) 下载链接:[https://nodejs.org/zh-cn/download/](https://nodejs.org/zh-cn/download/) 备注:根据系统环境选择下载包,版本推荐**长期支持版**。 安装教程:一直 下一步next 即可。 <p></p></div></div></div> <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-9437e7f4b7d5567d524ba611ce40d1d389" aria-expanded="true"><div class="accordion-toggle"><span>安装 express</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-9437e7f4b7d5567d524ba611ce40d1d389" class="collapse in collapse-content"><p></p> 官网:[https://expressjs.com/zh-cn/](https://expressjs.com/zh-cn/) 教程步骤: 一、新建一个文件夹 知识扩展:命令方式 `mkdir myapp` 二、进入该文件夹 知识扩展:命令方式 `cd myapp` 三、打开终端,运行 **express应用程序生成器** 命令 `npx express-generator` <p></p></div></div></div> <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-aefb5fb48bebcfe99167614212336ef454" aria-expanded="true"><div class="accordion-toggle"><span>依赖安装</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-aefb5fb48bebcfe99167614212336ef454" class="collapse in collapse-content"><p></p> 一、【必装】**nodemon** 热重载 命令:`npm i nodemon` 官方文档:[https://www.npmjs.com/package/nodemon](https://www.npmjs.com/package/nodemon) 二、【必装】**ykt-mongo** 连接并实现mongodb数据库的操作 命令 `npm i ykt-mongo` 官方文档:[https://www.npmjs.com/package/ykt-mongo](https://www.npmjs.com/package/ykt-mongo) 三、【选装】**xmlhttprequest** 网络请求,用于模拟浏览器 XMLHttpRequest 对象 官方文档:[https://www.npmjs.com/package/xmlhttprequest](https://www.npmjs.com/package/xmlhttprequest) <p></p></div></div></div> <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-cc80055813e58e6028efdaa14d0f16f887" aria-expanded="true"><div class="accordion-toggle"><span>配置数据库</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-cc80055813e58e6028efdaa14d0f16f887" class="collapse in collapse-content"><p></p> 一、在 `package.json` 里 添加 ```json "db": { "url": "mongodb://localhost:数据库端口(默认27017)", "dbname": "数据库名称" } ``` 扩展知识:需要放服务器用其数据库,而且数据库设置账号和密码的话,`url` 的格式: `mongodb://数据库名称:数据库密码@localhost:数据库端口` 二、在 `文件夹routes` 里的 `index.js` 的上面添加 ```json var db = require("ykt-mongo");// 连接并实现mongodb数据库的操作,必须添加 var XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;// 原生网络请求,选择性添加 ``` <p></p></div></div></div> <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-3343748c74f8724655b85071c70f49e470" aria-expanded="true"><div class="accordion-toggle"><span>编写接口</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-3343748c74f8724655b85071c70f49e470" class="collapse in collapse-content"><p></p> 在 `文件夹routes` 里的 `index.js` 编写 ```js // 示例 // 获取云端数据 router.get('/cloudGet', function (req, res, next) {// /cloudGet 指接口路径 db.collection("cloud").find(req.query, function (items) {// cloud 指集合(或表)的名称 if (items.length >= 0) {// res.send({ code: 200, data: items, msg: "成功" }) } else {// res.send({ code: -1, msg: "失败" }) } }) }) ``` **接下来是增删改查的一些示例** 官方文档:[https://expressjs.com/zh-cn/4x/api.html#router](https://expressjs.com/zh-cn/4x/api.html#router) ```js // 注意:只提供简单常用的基本语法,更多逻辑和安全验证请自行发挥或查询官方文档 // 添加 router.post('/add', function (req, res, next) { db.collection("user").insert(req.body, function (item) { if (item.result.ok == 1 && item.result.n == 1) { res.send({ code: 200, msg: "成功" }) } else { res.send({ code: -1, msg: "失败" }) }; }) }) // 删除 router.delete('/del', function (req, res, next) { db.collection("user").remove({_id}, function (items) { if (items.result.n == 1 && items.result.ok == 1) { res.send({ code: 200, msg: "成功" }) } else { res.send({ code: -1, msg: "失败" }) }; }) }) // 改,这里用的方式是将新的数据进行设置更新 router.put('/change', function (req, res, next) { let newObj = JSON.parse(JSON.stringify(req.query)); db.collection("goodsList").update({ _id }, { $set: newObj }, function (items) { if (items.result.n == 1 && items.result.ok == 1) { res.send({ code: 200, msg: "成功" }); } else { res.send({ code: -1, msg: "失败" }) }; }) }) // 查 router.get('/check', function (req, res, next) { db.collection("user").find(req.query, function (items) { if (items.length >= 0) { res.send({ code: 200, data: items, msg: "成功" }) } else {// res.send({ code: -1, msg: "失败" }) } }) }) ``` 注意:也可以自行在 `文件夹routes` 里新建js文件,具体方法看下面 <p></p></div></div></div> <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-912ccd0bf51ca1962a05199f0691a6b471" aria-expanded="true"><div class="accordion-toggle"><span>【重头戏】服务器配置</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-912ccd0bf51ca1962a05199f0691a6b471" class="collapse in collapse-content"><p></p> <div class="tip inlineBlock info"> 后端:什么?是狗都不用的宝塔面板? 前端:目前能用就行了,方便和简单才是前端写自定义接口项目的王道。 </div> 一、买个**服务器**,不要主机 没错,推荐32核32G【滑稽】 二、安装一下环境 花了三天的工资,终于买回来了一台服务器,呜呜~ **必装** **Nginx(v1.2)**、Pure-Ftpd(v1.0)、phpmyadmin(4.9)、**mongodb(4.4)**、 **Node.js版本管理器(v1.7 内置PM2管理器)** 三、配置一下Node.js版本管理器 在【**软件商店**】打开【**Node.js版本管理器**】,选择【**命令行版本**】,一般选择官网上面显示的**长期支持版** 四、添加 node项目 首先,在【文件】的 **wwwroot** 文件夹里 **新建一个文件夹**,然后将 **上面本地创建的api接口项目文件** 放进去; 其次,在【**网站**】打开【**Node项目**】,点击【**添加Node项目**】,**项目目录**选择api接口项目所在的位置,设置 **端口**(没改过的话就是3000),其它的默认的就行,**绑定域名**可以先不选,好啦,点击 **提交** ***好啦,现在你可以通过 `ip:3000/路径` 访问你写的api接口啦!***** 不过,我想通过https协议访问咋办捏?毕竟,比如微信小程序就需要https的合法域名 点击添加好的项目的 **设置**,点击 **【域名管理】**,添加一个主域名或者泛域名(注意需要域名已经解析到该服务器ip),再点击【**外网映射**】打开映射,最后点击【**SSL**】,使用“**Let's Encrypt”** 申请一个证书,并且开启“**强制Https”**,现在,你可以通过这个域名作为访问地址啦,而且不需要加端口! <p></p></div></div></div> 最后修改:2022 年 08 月 25 日 © 禁止转载 打赏 赞赏作者 支付宝微信 赞 0 分享不易,请老板打赏。