本文最后更新于 2024-08-29,文章内容可能已经过时。

起源:在B站看视频学习Vue,看到一半Vue调用接口,视频中用的node.js做服务端,其实用Java,python,php都有可以。我用java写了后台接口,Eclipse+Tomcat启动方式是真的慢,还占资源,于是突然对node感兴趣,又去看node.js的视频。

简介

简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

这里照搬菜鸟教程

优点

  • 非阻塞的I/O

    正常情况下I/O的操作是阻塞的(ajax同步)

  • 高并发特别好

    详细参考:CSDN

为什么要学Node.js

一般对于前端开发者,不会后端,但是想部署一些东西,或者需要自己调用接口测试前端之类,上手比较快的服务端。

好学吗?用的到吗?

就我来说,JS扎实 会javaweb上手还是挺快的 大概5天左右入门 会基础的就行

至于用不用的到,用在哪些场景,详细参考:CSDN

模块化

  • 内置模块(node中提供的,可以直接调用)

    • 文件操作
  • 第三方模块

  • 自定义模块

    • 创建一个模块(一个js文件一个模块)
    • 导出一个模块(module.exports=name)
    • 引用一个模块并调用

我为什么要学?

只是突然感兴趣。对于现在在学前端的我来说,调用接口比java方便,更轻量级。

用什么编辑器

其实前端编辑器都可以,我用过HbuliderX,不过语法提示不是很好,而且如果新手不会配置HBuilder的话每次运行都要用cmd窗口 所以我换到了Vscode下面就有窗口可以写cmd

要注意什么

因为node是模块化,所以我建议把模块安装在最外面的目录,子目录会自动往上找去调用模块不用担心。

npm换源

类似python,npm国外服务器下载也非常慢,可以换成国内的源 输入以下代码: npm config set registry http://registry.npmmirror.com 还有一种是网上比较多的cnpm

npm install -g cnpm --registry=http://registry.npmmirror.com

都换了源,区别就是第一个指令还是npm,但第二个就是cnpm。推荐第一种方式 之后再输入

npm config list

就可以看下以下信息,已经换好了

; cli configs
metrics-registry = "http://registry.npmmirror.com"
scope = ""
user-agent = "npm/6.13.4 node/v12.16.1 win32 x64"

; userconfig C:\Users\84788\.npmrc
registry = "http://registry.npmmirror.com"

; builtin config undefined
prefix = "C:\\Users\\84788\\AppData\\Roaming\\npm"

; node bin location = C:\Program Files\nodejs\node.exe
; cwd = C:\Users\84788
; HOME = C:\Users\84788
; "npm config ls -l" to show all defaults.

基本操作

//初始化命令(不是每次都需要执行)
npm init --yes
//安装模块命令
npm install XXXX --save/npm i XX -s

安装

安装教程:菜鸟教程

插件

部分插件归于问题里面 ##1.session插件-express-session## 安装命令

npm install express-session -s

配置在server.js就行

//session配置
app.use(session({
    secret:'asfafqwf',//为了安全性的考虑设置secret属性
    cookie:{maxAge:60*1000*60*24},//设置过期时间
    resave:true,//及时Session没有被修改,也保存session,默认为true
    saveUninitialized:false//无论有没有session cookie,每次请求都设置session cookie,默认为false
}))

问题

##1.cmd提示不是内部或外部命令##

环境变量,在系统变量Path中添加

C:\Program Files\nodejs\

##2.nodemon是什么## 运行server后,很多情况下修改了代码需要重启服务,nodemon可以让服务自动更新,nodemon的安装和其他模块不同一点定要全局安装

npm install nodemon -g

##3.apidoc##

可以自动生成api文档

/**
 * @api {get} /user/:id Request User information
 * @apiName GetUser
 * @apiGroup User
 *
 * @apiParam {Number} id Users unique ID.
 *
 * @apiSuccess {String} firstname Firstname of the User.
 * @apiSuccess {String} lastname  Lastname of the User.
 */

官网链接:点击访问

##4.图片上传multer模块## 安装

npm install multer

##5.跨域问题## express的中间件有个cors 安装命令

npm install cors -s

调用

const express=require('express')
const cors=require('cors')
const app=express()

app.use(cors())

其他跨域问题:跨域访问报错