🎈 现在订阅送半年,再次订阅 / 续订送一年。(赠送活动快要结束了) 🎉

博客

Node.js:用 Express 与 Multer 创建文件上传接口

最近测试小程序的接口,需要我提供一个后端服务的文件上传接口。可以使用 Node.js  创建一个这样的上传文件的接口。主要会用到 Express,Multer 这两个 Package。另外可以把上传的结果存储在数据库里,我用了一个叫 Loki 的数据库,这个数据库会在内存里运行,使用简单,速度快。

准备项目

为项目准备一个 package.json 文件。

npm init -y

安装包

npm install express multer cors --save

express 用来创建接口,multer 可以处理文件的上传,cors 可以方便的解决跨域请求问题,比如你的前端应用或者小程序要请求后端服务接口,就会有跨域问题,你得设置一些头部信息解决这个问题。

再安装一个开发依赖叫 nodemon,它会帮我们重启服务。

npm install nodemon --save-dev

文件上传

在项目下面创建一个 upload.js,可以放在 src 目录的下面。内容如下:

src/upload.js

为工作准备(前端):金山前端小组长的技术要求

前两天我请了在金山软件公司担任前端小组长的一位朋友(Eyas)帮忙写了一份前端技术需求。大家可以把这份实际工作的技术需求当成一条学习路径,结合宁皓网的课程,给大家列一下学习顺序。我又咨询了一下在 Bilibili 工作的朋友,他也是做前端,要求基本差不多,Bilibili 用的是 Vue 前端框架,所以需求里 Vue.js 是必须要会的东西。前端工作在上海,现在的薪水在 15K ~ 20K 。

般若波罗蜜

两年前我在宁皓网的首页介绍视频里开玩笑说自己的愿望就是实现老婆的愿望,比如在历下区(济南市的一个有优质教育资源的区)买个学区房啥的。这是小雪的心愿,有那么几天我也真的是每天都想想这事,但是真的没有太当真。今年这个愿望别扭地实现了。

自由职业多年养成自由散漫的习惯,也或许是自己天生 “不羁放纵爱自由”。这导致自个儿抗压能力较弱,感受到太大压力,我就不能正常工作。遇到点啥事都想着是不是被限制了,经常逃避,给自己借口,需要自由地空间。这应该也是懦弱地表现。

打从闺女出生起,小雪就开始想着她将来在哪块上学。我真是从来没当回事,我只想能让闺女有个快乐自由地成长环境。在这点上,我跟小雪一直是有分歧的,她宁愿选择条件差的居住条件换取一所好的学校。我觉得小孩应该有个能跟伙伴们快乐玩耍地空间。

我住的有点偏,朋友们来一回都劝我们抓紧搬。不过我来济南二十年,一直在城市边缘荡悠,可能是习惯了。以前早上上班的时候都得在公交车上睡一觉。有的公交车是循环线路,睡过头,过站了,起来的时候会一懵,得想想自己这是上班还是下班。

微信小程序:路由

在小程序里的页面,你要在小程序的主配置文件 app.json 里面说明一下,这些页面可以放在 pages 属性的下面。在里面描述一下页面的地址就行了,比如 pages/index/index,这就是 index 页面的地址,这个页面应该在 pages 目录下面的 index 这个目录里,最后的 index 是页面的名字,这里不需要指定扩展名,小程序会自动给我们加上。

{
  "pages": [
    "pages/wxml/wxml",
    "pages/index/index",
    "pages/event/event",
    "pages/demo/demo"
  ],
}

页面导航

小程序内部页面与页面之间的链接,需要用 navigator 组件,组件里面包装的东西就是链接文字,组件上的属性可以配置链接属性,比如用 url 属性设置一下链接的地址。像这样:

<navigator url="/pages/demo/demo">demo</navigator>

在页面上会显示一个 demo 链接,点击这个链接打开的就是 demo 页面。链接上可以包含查询参数,这些参数在页面上可以得到,你可以把这些参数告诉应用的后端去处理。

微信小程序:注册小程序页面

注册了小程序以后,就需要为小程序准备一些页面了。每个页面都有三个基本的东西,一个主逻辑文件(.js),一个视图文件(.wxml),还有一个样式文件(.wxss)。页面需要的这几个文件可以放在一个单独的目录的下面。

主逻辑

先创建页面的主逻辑文件,比如放在 pages/index/ 这个目录的下面,页面的主逻辑文件的名字可以是 index.js ,在这个文件里,用 Page() 函数注册一个页面。

Page({})

注册的时候可以给它一个对象参数,在它里面可以添加页面的初始化数据,生命周期,事件处理,还有自定义的方法。

生命周期

页面也有自己的生命周期,就是页面在不同的阶段要做的一些事情。onLoad,onShow,onReady,onHide,onUnload。需要在什么阶段做事情,就在注册页面的 Page() 里面添加一个对应的生命周期方法,这些方法会自动被执行。

微信小程序:注册小程序

完成小程序开发前的准备工作,就可以去学习开发微信小程序了,主要就是学习小程序这套框架,它跟一般的前端框架非常像,比如 React,Vue 等等。开发用的语言是 JavaScript,在本地用微信开发者工具开发与调试, 在模拟器上可以预览小程序的运行。想在手机微信里运行小程序,可以把代码推送给微信,然后手机扫码,有权限的用户就可以预览小程序了,整个开发过程很友好。

注册小程序

小程序需要一个主要的逻辑文件,一个配置文件,还有一个样式文件。在主逻辑文件里你得用 App() 函数去注册一个小程序,注册的时候里面可以添加一些初始化的数据,小程序的生命周期方法,还有自定义的方法。在小程序的配置文件里可以使用小程序框架规定的一些配置选项,去配置我们的小程序。小程序可以有个主要的样式文件,在这里去定义在程序页面上需要共用的一些样式。

app.js

app.js 是小程序的主要逻辑文件,在这里需要用 App() 注册一个小程序。这个文件需要在小程序的根目录的下面。

App({})

注册的时候给它一个对象参数,在这个对象里添加小程序里面需要的初始化数据,生命周期,还有自定义的方法。

微信小程序:开发准备

准备开发工具

微信小程序就是用在微信内部的 App,它是微信公众平台的一部分。宁皓网刚刚发布了一集微信小程序开发课程。在做微信小程序开发之前,要做些准备工作。

新发布一波 Node.js 课程

Node.js 起步》,《Node.js 与 MongoDB》,《Node.js:REST 接口》都是最近发布的新课程。后面还会有 JSON Web Token(JWT) ,以及基于 JSON Web Token 身份验证的课程。下面回顾一下宁皓网上跟 Node.js 相关的课程包

《Node.js 起步》

为 Node.js 项目做些准备,了解如何在系统上安装多个版本的 Node.js,在本地开发的时候可以随便切换不同的版本。然后了解 Node.js 上的模块,怎么样使用内置的模块,第三方模块 ,还有自定义的模块。

Node.js:REST 接口

路由 Routes

了解了 Node.js ,学会了用 Node.js 处理 MongoDB 数据库,现在我们可以为应用开发一套 RESTful 接口。 就是在应用里提供一些地址,用户可以在这些地址,使用不同的 HTTP 的方法去做不同的事情。比如创建,读取,更新,删除应用里的资源。

Node.js 与 MongoDB

连接到 MongoDB 数据库

刚发布了新课程《Node.js 与 MongoDB》,介绍了使用 Node.js 控制 MongoDB 数据库的方法。写入,读取,更新,还有删除数据。在本地安装一个 MongoDB,跟着 MongoDB 的课程练习一下,先了解一下 MongoDB 本身提供的方法去处理数据库里数据。

让 Node.js 与 MongoDB 结合到一块儿,需要一套方法,MongoDB 官方提供了一套方法叫:node mongodb native。课程里我用的是 Mongoose,这个 Mongoose 有点像是 Laravel 里的 Eloquent, 或者 Rails 框架里的 Active Record,可以到宁皓网上找一下这两个框架的课程,先去了解一下,会有帮助。



微信好友

用微信扫描二维码,
加我好友。



微信公众号

用微信扫描二维码,
订阅宁皓网公众号。



240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

8328
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点