nodejs开发后端接口(2)

项目结构

重要的文件目前就这两个

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也会自动重新生成的。

使用 Docker 运行 MySQL

安装Docker

附下载地址

Get Started | Docker

进入控制面版打开服务,找不到Hyper-H就建一个Hyper.cmd文件

填写以下内容

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

执行完会自动重启,

选完后docker还是报错进不去,并且无法wsl --update,那试试在命令行输入

wsl --set-default-version 2

然后就可以了

配置镜像

进入后在设置配置下中国镜像

连接MySQL

在根目录下创建这个文件,并填入以下内容

services:
  mysql:
    image: mysql:8.3.0
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
    environment:
      - MYSQL_ROOT_PASSWORD=clwy1234
      - MYSQL_LOWER_CASE_TABLE_NAMES=0
    ports:
      - "3306:3306"
    volumes:
      - ./data/mysql:/var/lib/mysql
 

然后就可以看见

遇到了无法Start的问题

报错为

Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

通过这个博客解决了

win10使用Docker Desktop启动mysql报错:Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: - sowler - 博客园 (cnblogs.com)

端口被占用,检查占用进程是什么,进入cmd

>netstat -aon|findstr 3306

发现被6100PID的进程占用了,删除这个进程

taskkill /T /F /PID 3104

但是删了之后DataGrip无法连接数据库了,以后看看怎么办

成功启动

使用数据库

建表并插入数据

安装ORM

用ORM代替MySQL语句的编写

npm i -g sequelize-cli
npm i sequelize mysql2
sequelize init

在项目的cmd中依次执行上面三条指令

增加了上面四个文件夹

配置config

目前只用管开发环境的配置(改password和database即可)

新建models

直接用ORM命令建表

sequelize model:generate --name Article --attributes title:string,content:text

模型就是用来操作数据库的,就是因为有这个文件的存在,我们后面才能使用Article.all()这种代码来查询数据。模型里还有一些其他的东西,我们暂时不用管它

migrations目录

它的作用就是用来创建、修改表的。看到这里,在up部分。我们通过createTabel,创建了一个叫做Articles的表。

运行迁移

sequelize db:migrate

运行该命令,即可发现数据库也新建了一个表

seeders目录

可以快速填充我们需要的数据

sequelize seed:generate --name article

用该命令新建种子文件

文件分为两个部分,up部分用来填充数据,down部分是反向操作,用来删除数据的。

改一下up和down的内容

接着运行命令(xxx填自己的文件名)

sequelize db:seed --seed xxx-article

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值