Node.js - 创建 Express 项目

发布于:2025-07-26 ⋅ 阅读:(16) ⋅ 点赞:(0)

创建 Express 项目

安装
npm i -g express-generator

or

npm i -g express-generator@4


# 注意:Windows有可能碰到提示:npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。
# 如果碰到这个错误,需要用`管理员身份`打开PowerShell,然后运行:
Set-ExecutionPolicy RemoteSigned
创建项目
# 创建项目
express --no-view clwy-api  //clwy-api是项目名称

# 注意:Windows有可能碰到提示:express : 无法加载文件 C:\Program Files\nodejs\express.ps1,因为在此系统上禁止运行脚本。
# 如果碰到这个错误,需要用`管理员身份`打开PowerShell,然后运行:
Set-ExecutionPolicy RemoteSigned

# 进入项目之中
cd clwy-api 

这里要注意,我们使用了--no-view参数,它的意思是不需要任何视图模板,因为我们这个项目专门做后端接口的。将来渲染页面会使用VueReact之类的框架,所以不需要视图。然后我们项目的名字叫做clwy-api

项目创建成功后,通过命令,安装依赖包。
npm i 
or 
npm install
最后,运行命令,启动服务
npm start

现在就可以通过 http://localhost:3000,来访问我们的第一个项目了。

 输出 json

继续来改,我们这个项目是专门开发接口的,而接口所需要的是json格式,而不是直接输出HTML

那么找到routes/index.js文件,将中间这行改为

router.get('/', function (req, res, next) {
  res.json({ message: 'Hello Node.js' });
});

它的意思就是以json格式来输出 Hello Node.js

这时候我们刷新浏览器,会发现它没有任何变化,还是显示以前的内容。这是因为当修改代码后,Express并没有一直监听我们的修改,运行的一直是之前的东西。想要显示最新修改的内容,需要重启服务。

回到命令行,按ctrl + c键,可以停止服务,接着再次运行npm start来启动服务。接着还要删掉public/index.html文件。

注意:请务必删掉index.html。很多同学到这里没有删掉index.html就去访问了,会导致无法显示json数据。

刷新浏览器后,可以看到返回的json数据了

美化JSON格式

浏览器安装 JSON-handle插件

nodemon 监听修改 

 安装nodemon包
npm i nodemon
 然后打开项目根目录下的package.json,将start这里修改为
"scripts": {
  "start": "nodemon ./bin/www"
},
重启项目
npm start

修改内容无需重启,我们直接刷新,可以看到显示的内容

总结

  1. 开发Node.js项目,要先安装express-generator,这样才能使用命令,创建项目
  2. 创建项目的命令是express --no-view 加上项目名
  3. 后端接口所使用的格式是:json,而不是:HTML
  4. 还要给项目安装、配置nodemon,这样Express才能监听你的代码

项目结构

使用express-generator建好的项目,都是这个结构。现在我们一一分析下,它们都是用来干嘛的

bin/www

package.json中,大家见过这个文件的配置。它是用来启动项目的文件,无需修改,也不用管它,知道它是干嘛的就好了。

node_modules

展开后,会发现里面有非常多的文件。这就是当我们使用npm i命令后,安装的项目依赖包。我们也不用管它,甚至将它们删掉都没关系。因为当你再次运行npm i后,它又会重新出现的。

public 目录

这里放的各种静态资源,例如 CSS、图片等等静态资源。但因为我们项目是专门开发接口的,所以这里的东西,大家完全不需要管它,根本用不上。

routes

这里是程序的路由部分,路由简单的理解就是将不同网址,分别对应到不同的程序代码上去。咱们开发项目,最重要的就是这个目录了,后面我们开发要写的代码主要也都是在这里。

app.js

这个文件也很重要,在开发中,我们需要做一些路由的配置、跨域配置,都会来修改它的。

package.json

这里主要记录的是项目的基本信息,和一些依赖包的情况。

package-lock.json

最后一个是package-lock.json,它是用来锁定npm i时,安装依赖包的版本号。并且将代码发给其他人后,保证其他人在npm i时,所使用的依赖包版本号能一致。这个文件删掉后,运行npm i也会自动重新生成的。

所以我们在开发中,目前要关注的就是router 目录 和 app.js,其他文件都无需理会。

 

上面两行就是引入express,定义了路由 (router),路由就是用来设置访问地址的。它可以将不同的访问地址,与一个个不同的方法对应起来。 

 简单的了解一下路由 

 

注意看,这里有个getget是请求的一种,我们后面还有碰到其他的请求。get请求大家就简单的理解成,用户访问浏览器了。get后面是/,这是访问地址的路径。

可以尝试做一个修改,将/改为/hello

现在刷新页面,浏览器会提示你 Cannot GET /,接着我们访问 http://localhost:3000/hello,又会正确的显示内容了。

req、res 和 next 

接着这里有个function,它就是当前路由/hello访问后,所对应的,要运行的函数。它里面有三个参数,分别是:reqresnext

req

reqRequest的缩写,也就是请求的意思。通过req,我们可以获取到用户通过URL,或者表单传递给我们的数据。例如用户提交了一个关于注册的表单,我们就可以从req中取出用户提交的数据,从而进一步存入到数据库中,保存起来。现在请先稍等一下,后面我们很快就会学习到相关的知识了。

res

resResponse的缩写,也就是响应的意思。通过res,我们可以对用户的请求做出响应。例如这里的

它的意思就是,当用户访问了 /hello 后,要通过json这种格式,显示一段欢迎信息给用户看。这样用户的浏览器上才能正确的显示数据啊。

next

最后的next,没错,它就是下一步的意思。它允许我们在当前函数中对请求进行一些处理,然后再传递给下一个函数。

导出模块

最底部的module.exports = router,这是Node.js中一种导出模块的方式。在所有的路由文件中,你都将见到这一行,而这是必须存在的。因为只有这样写了以后,app.js中,才能正确的引用到我们当前的路由文件

 总结

  1. 目前开发中,只需要关注routes 目录app.js 文件就好了,其他的都不用管它。
  2. 路由的作用,就是让浏览器的访问地址,与代码段对应起来
  3. 推荐使用ES 6语法,用constlet来代替var

网站公告

今日签到

点亮在社区的每一天
去签到