当前位置: 首页 > news >正文

石家庄市城乡和建设局网站chatgpt中文在线

石家庄市城乡和建设局网站,chatgpt中文在线,潍坊免费做网站,网站维护与推广定义让我们在 JavaScript 中创建一个 CRUD rest API#xff0c;使用#xff1a;节点.js表达续集Postgres码头工人码头工人组成介绍这是我们将要创建的应用程序架构的架构#xff1a;我们将为基本的 CRUD 操作创建 5 个端点#xff1a;创造阅读全部读一个更新删除我们将使用以下…让我们在 JavaScript 中创建一个 CRUD rest API使用节点.js表达续集Postgres码头工人码头工人组成介绍这是我们将要创建的应用程序架构的架构我们将为基本的 CRUD 操作创建 5 个端点创造阅读全部读一个更新删除我们将使用以下方法创建一个 Node.js 应用程序表达为框架序列化为 ORM我们将 Dockerize Node.js 应用程序我们将有一个 Postgres 实例我们将使用 Tableplus 对其进行测试我们将创建一个 docker compose 文件来运行这两个服务我们将使用 Postman 测试 API分步指南这是一个分步指南。新建一个文件夹mkdir node-crud-api步入其中cd node-crud-api初始化一个新的 npm 项目npm init -y安装依赖项npm i express pg sequelizeexpress 是 Node.js 框架pg 是与 Postgres 数据库连接的驱动程序sequelize 是 ORM所以我们避免输入 SQL 查询创建4个文件夹mkdir controllers routes util models使用您喜欢的 IDE 打开文件夹。如果你有 Visual Studio Code你可以从终端输入code .你现在应该有一个类似于这个的文件夹现在让我们开始编码。数据库连接在“util”文件夹中创建一个名为“database.js”的文件。此文件将包含内部配置以允许 Node.js 应用程序和正在运行的 Postgres 实例之间的连接。填充 util/database.js 文件constSequelizerequire(sequelize);constsequelizenewSequelize(process.env.PG_DB,process.env.PG_USER,process.env.PG_PASSWORD,{host:process.env.PG_HOST,dialect:postgres,});module.exportssequelize;用户模型在“models”文件夹中创建一个名为“user.js”的文件。该文件将包含模型在本例中为具有自动递增 ID、名称和电子邮件的用户。填充 models/user.js 文件constSequelizerequire(sequelize);constdbrequire(../util/database);constUserdb.define(user,{id:{type:Sequelize.INTEGER,autoIncrement:true,allowNull:false,primaryKey:true},name:Sequelize.STRING,email:Sequelize.STRING});module.exportsUser;控制器该文件包含所有要执行的函数以便与数据库交互并具有 4 个基本功能在“controllers”文件夹中创建一个名为“users.js”的文件填充 controllers/users.js 文件constUserrequire(../models/user);// CRUD Controllers//get all usersexports.getUsers(req,res,next){User.findAll().then(users{res.status(200).json({users:users});}).catch(errconsole.log(err));}//get user by idexports.getUser(req,res,next){constuserIdreq.params.userId;User.findByPk(userId).then(user{if(!user){returnres.status(404).json({message:User not found!});}res.status(200).json({user:user});}).catch(errconsole.log(err));}//create userexports.createUser(req,res,next){constnamereq.body.name;constemailreq.body.email;User.create({name:name,email:email}).then(result{console.log(Created User);res.status(201).json({message:User created successfully!,user:result});}).catch(err{console.log(err);});}//update userexports.updateUser(req,res,next){constuserIdreq.params.userId;constupdatedNamereq.body.name;constupdatedEmailreq.body.email;User.findByPk(userId).then(user{if(!user){returnres.status(404).json({message:User not found!});}user.nameupdatedName;user.emailupdatedEmail;returnuser.save();}).then(result{res.status(200).json({message:User updated!,user:result});}).catch(errconsole.log(err));}//delete userexports.deleteUser(req,res,next){constuserIdreq.params.userId;User.findByPk(userId).then(user{if(!user){returnres.status(404).json({message:User not found!});}returnUser.destroy({where:{id:userId}});}).then(result{res.status(200).json({message:User deleted!});}).catch(errconsole.log(err));}航线在“routes”文件夹中创建一个名为“users.js”的文件。填充 routes/users.js 文件constcontrollerrequire(../controllers/users);constrouterrequire(express).Router();// CRUD Routes /usersrouter.get(/,controller.getUsers);// /usersrouter.get(/:userId,controller.getUser);// /users/:userIdrouter.post(/,controller.createUser);// /usersrouter.put(/:userId,controller.updateUser);// /users/:userIdrouter.delete(/:userId,controller.deleteUser);// /users/:userIdmodule.exportsrouter;索引文件要运行我们的应用程序我们需要在根级别创建更多文件。这是将由 docker 容器执行的文件。在根文件夹中创建一个名为 index.js 的文件填充“index.js 文件”constexpressrequire(express);constbodyparserrequire(body-parser);constsequelizerequire(./util/database);constUserrequire(./models/user);constappexpress();app.use(bodyparser.json());app.use(bodyparser.urlencoded({extended:false}));app.use((req,res,next){res.setHeader(Access-Control-Allow-Origin,*);res.setHeader(Access-Control-Allow-Methods,GET, POST, PUT, DELETE);next();});//test routeapp.get(/,(req,res,next){res.send(Hello World);});//CRUD routesapp.use(/users,require(./routes/users));//error handlingapp.use((error,req,res,next){console.log(error);conststatuserror.statusCode||500;constmessageerror.message;res.status(status).json({message:message});});//sync databasesequelize.sync().then(result{console.log(Database connected);app.listen(3000);}).catch(errconsole.log(err));码头部分让我们在根级别再创建 3 个文件.dockerignore以点开头Dockerfile大写字母 Ddocker-compose.yml结构应如下所示.dockerignore 将包含一行node_modulesDockerfile要创建 Docker 镜像我们需要一个简单但功能强大的文件。这就是所谓的“Dockerfile”大写字母 D。我们可能会使用不同的名称但让我们暂时保持简单。FROM node:14# Create app directoryWORKDIR /appCOPY package*.json ./RUN npm install# Bundle app sourceCOPY . .EXPOSE 3000CMD [ node, index.js ]Docker 组合文件要运行多个服务一种简单的方法是创建一个名为“docker-compose.yml”的文件docker-compose.yml 文件version:3.9services:node_app:container_name:node_appbuild:.image:francescoxx/node_live_appports:-3000:3000environment:-PG_DBnode_live_db-PG_USERfrancesco-PG_PASSWORD12345-PG_HOSTnode_dbdepends_on:-node_dbnode_db:container_name:node_dbimage:postgres:12ports:-5432:5432environment:-POSTGRES_DBnode_live_db-POSTGRES_USERfrancesco-POSTGRES_PASSWORD12345volumes:-node_db_data:/var/lib/postgresql/datavolumes:node_db_data:{}构建 Docker 镜像并运行 docker 容器在容器中运行 Postgres首先让我们运行 postgres 容器docker compose up -d node_db要检查日志我们可以键入docker compose logs你应该得到类似于这个的输出如果我们看到“数据库系统已准备好接受连接”我们就可以开始了让我们使用 TablePlus 对其进行测试。单击 创建新连接从 docker-compose.yml 文件复制值。如果您保留原值密码为 12345构建并运行 Docker 服务其次让我们构建我们的 Docker iamgedocker compose build最后让我们启动服务docker compose up node_app这应该是终端上的输出使用 Postman 测试应用让我们使用 Postman 测试应用程序。向 localhost:3000 发出 GET 请求向 localhost:3000/users 发出 GET 请求我们应该有一个空数组作为响应让我们创建 3 个用户aaa、bbb 和 ccc让我们再次检查所有用户向 localhost:3000/users 发出 GET 请求我们应该看到 3 个用户让我们得到一个用户例如用户 2向 localhost:3000/users/2 发出 GET 请求让我们更新现有用户例如同一用户 2使用不同的主体向 localhost:3000/users/2 发出 PUT 请求最后让我们删除用户号 3对 localhost:3000/users/3 进行删除请求我们还可以使用 TablePlus 检查值结论这是一个基本示例说明如何使用 Node.js、Express、Sequelize、Postres、Docker 和 Docker Compose 构建 CRUD rest API。
http://www.yingshimen.cn/news/33172/

相关文章:

  • 温州做网站整站优化网站怎么做伪静态iis7.0
  • 长沙网站建设的公司wordpress 亲子模板
  • 网站建设返回函数一鸣东莞网站建设公司
  • wordpress 获取网站优化目录
  • 做购物网站的图标从哪里来seo软文推广工具
  • 淮安网站开发工程师招聘网铝单板设计师招聘网
  • 网站优化是做什么的高青外贸公司网站建设
  • wordpress插件图库东莞网站的优化
  • 单页面营销网站中信建设公司领导班子
  • 安平有做农产品的网站被淘宝客 wordpress 主题
  • 怎么在百度自己创网站网络培训法
  • 关于做情侣的网站的图片素材交易网站建设具体方案
  • 云霄建设局网站中国最有创意的广告
  • 手机版刷赞网站建设网站备案号被注销怎么办
  • 工信部网站备案查询步骤详解网络平台推广有哪些渠道
  • 苏州正规网站制作公司软件开发文档工具
  • 采集站seo课程页面模板怎么放到自定义菜单
  • 招远网站建设价格房产网加盟
  • 设计网站公司医疗网站建设机构
  • 站长之家官网龙岗南联网站建设公司
  • wordpress 4.0 多站点构建中小型企业网络
  • 商业网站定义网站建设文献综述模板
  • 合肥高端网站建设设计公司哪家好dedecms能做什么网站
  • 云南网站设计外包中秋网页制作素材
  • 事务所网站制作方案烟台做网站需要多少钱
  • 如何 html5 网站模板适合大型网站的流量套餐
  • 做网站的的步骤怎么写wordpress 外教 缩略图
  • 微网站建设步骤最简单的网页
  • 绞铜机 东莞网站建设六安电商网站建设哪家好
  • 温州网站建设温州wordpress特定账户注册