首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(二)

迷你全栈电商应用实战系列的第二篇教程,我们将通过基于 Node.js 平台的 Express[1] 框架实现后端 API 数据接口,并且将数据存储 MongoDB[2] 。...第一部分:用 Vue 搭建前端项目的骨架,实现基于嵌套、动态路由的页面跳转。2.第二部分(也就是这篇):用 Express 实现后端 REST API,并使用 MongoDB 进行数据存储。...接着我们我们的 app.js 文件中导入 mongoose ,并且通过 mongoose 提供的接口连接我们的 MongoDB 数据库: // ... const mongoose = require...(mongoose); const ObjectId = mongoose.Schema.Types.ObjectId; const productSchema = Schema({ id: ObjectId...我们还可以看到,我们的 productSchema ,manufacturer 数据结构我们定义了一个 ref 属性,这是 MongoDB 为我们提供的类似关系数据库的外键功能,允许我们创建一对的数据文档

3.1K10

Mongoose 插件记录Node.js API日志

这些模块可以将日志存储不同格式或级别的文件。我们将使用流行的ORM Mongoose 讨论 Node.js Express 程序的 API 日志记录。...那么如何创建一个 Mongoose 插件,以更清洁的方式为你进行记录并简化 API 日志? Mongoose 的插件是什么? Mongoose ,模式是可插入的。...插件就像一个函数,你可以模式中使用它,并在模式实例上一次次地重用。 Mongoose 还提供全局插件,你可以将其用于所有模式。...这是我们的模型:models/log.js const mongoose = require('mongoose') const Schema = mongoose.Schema const { ObjectId...你还可以通过架构模型初始化它来将其用于特定架构。 const mongoose = require('mongoose') mongoose.plugin(require('.

2.8K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入浅出mongodb之实战

    安装完成上述指令之后,我们可以检查一下安装的express是否能用 express --version 接着我们就可以创建项目了,创建项目的时候可以先express -h来查看一下,express命令的参数...useUnifiedTopology: true }); 设置跨域 开发,我们采用的都是前后端分离的状态,本地的开发环境我们无法避免的会遇到跨域[3]的情况,我们这里设置允许所有的源访问 app.use...实际上真正的开发环境,如果我们这么设置允许所有的的源都可以访问会有很多问题,我们可以使用cors[4]来代替它 当然如果在生产中我们采用nginx部署之后,就不存在跨域了?...const mongoose = require("mongoose"); const Scheme = mongoose.Schema; const ObjectId = mongoose.Types.ObjectId...}; model 项目的根目录下创建model的文件夹,创建index.js文件: const mongoose = require("mongoose"); const model = mongoose.model.bind

    1.7K10

    城市X选与 2+1 拼购模式:循环社交裂变,促进用户增长

    :javascript复制代码const express = require('express'); const mongoose = require('mongoose'); const bodyParser...= require('body-parser'); const app = express(); const port = 3000; // 连接MongoDB数据库 mongoose.connect...注意:实际应使用加密存储密码 referralCode: String, // 邀请码 referrals: [{ type: mongoose.Schema.Types.ObjectId...实际应用,必须确保所有敏感信息的安全处理。性能优化:对于大量用户和订单,需要优化数据库查询和服务器性能。业务逻辑:示例代码未实现完整的业务逻辑,如排队免单算法、奖励机制等。...前端交互:前端示例代码非常基础,实际需要更复杂的用户交互和界面设计。测试:实际部署之前,需要进行全面的测试,包括单元测试、集成测试、性能测试等。

    11010

    我的NodeJS学习之路6(数据库设计及开发)

    关系型数据库的解决思路: 文章的Collection增加一个SubCollection,SubCollection可以存放用户信息,如用户名,只要有用户喜欢了文章,在这篇文章的文档的子文档下插入一条记录即可...'); mongoose.connect('mongodb://127.0.0.1:27017/blog'); 定义一个Schema(也就是Mongodb的Collections集合),更多字段类型,...Mongoose高级用法 关联关系的建立 大家会发现dhHelperuserSchema和articleSchema是有对应关系的(具体的说是“一对关系”),那么这个对应关系是怎么设计的呢?...说到这里,我们先来说一个其他的问题:“关于Mongodb两个集合之间的对应关系,设计呢?”...articleSchema增加一个字段_user,类型为Schema.Types.ObjectId,关联User: _user: { type: Schema.Types.ObjectId,

    2.8K10

    React、TypeScript、NodeJS 和 MongoDB 搭建 Todo App

    本教程,我们将在服务器和客户端使用 TypeScript、React、NodeJS、ExpressMongoDB 从头开始构建一个 Todo 应用程序。 我们从设计 API 开始。...用 NodeJS, Express, MongoDBTypeScript 设计 API 启动 如果你是新手,可以看看《TypeScript 实用指南》,或者从《如何用 Node JS、Express...yarn add express cors mongoose 我们还需要安装它们的类型作为开发依赖项,帮助 TypeScript 编译器理解这些包。...所以,我们在下一节解决这个问题。 创建服务器 创建服务器之前,我们需要在 nodemon.json 加一些环境变量来保存 MongoDB 的凭据。...就是说,现在如果我们能成功连接 MongoDB,服务器就会启动,否则,会抛出错误。 我们现在已经通过 Node、ExpressTypeScriptMongoDB 完成 api 的构建。

    17K30

    Node.js 搭建一个 API 接口服务(实战)

    ,最后决定使用的技术栈就是 koa+typescript+mysql+mongodb来搭建项目。...当然,前面说的都是虚的,其实真正吸引我的是koa通过es6的写法,利用async函数,解决了express.js地狱回调的问题,并且koa不像express一样自带那么中间件,对于一个私有项目来说,...,适合自己的才是最好的 Mysql MySQL 是最流行的关系型数据库管理系统, WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System...:关系数据库管理系统)应用软件之一 Mongodb 为什么用了mysql还要用mongodb呢?...不过这个项目除了使用mysql,也还有用到mongo,接下来看看mongodb怎么用 使用mongoose作为mongodb的中间件 // mongoose入口 import mongoose from

    8.2K31

    2020年,你应该知道 23 个非常有用的 NodeJs 库

    CORS 是用于提供Connect/Express中间件的node.js程序包,可用于启用具有各种选项的CORS。 5....Passport.js 是一个简单的、非侵入式的 Node.js 身份验证中间件,它可以集成到任何基于 Express.js 的 web 应用 6....它几乎可以覆盖到任何你想用的用例, Github 上的文档也可以帮你分分钟熟悉它的用法。 12....MongoosemongoDB的一个对象模型库,封装了mongoDB对文档的一些增删改查等常用方法,让nodejs操作mongoDB数据库变得更容易。...Jest 是由 Facebook 推出的一个前端测试框架,具有许多非常好的特性,譬如执行速度快、API友好、自动监控、Snapshot、测试覆盖率、Mock等各种特性,并且适用于Babel、TypeScript

    3.4K30

    Week14-服务端选型:磨刀不如砍柴功

    mongoose 的 model ,不过这里获取了也没关系 filter: /\.js$/, excludeDirs: /^\....的区别 Mysql:关系型数据库,用于存储表格形式,格式规整的数据 Mongodb:文件数据库,用于存储文件,格式零散的数据。...Session原理简单、易于学习 用户信息存储服务端,可以快速封禁某个登录的用户 但是: 占用服务端内存、多进程、服务、跨域传递cookie 4-3 介绍JWT登录 JWT – Json Web...以后访问接口,都在header带上token。 优缺点 优点:不占用服务器内存、多进程,服务器,不受影响、不受跨域限制 缺点:无法快速封禁登录的用户。...,就不容易看出来一些表的关联关系,如果我们新建表的时候就去设置外键表的关联,首先表结构一目了然,且新增(外键关联的主键没有值得时候)会有错误提示,删除主键表的时候,关联的主键内容也会删掉。

    2K30

    我为什么喜欢NestJS

    依赖注入最大的作用是代码解耦,依赖的对象根据不同的情况可以有多种实现,如单元测试的时候可以不改业务代码的情况下将依赖的对象换成 Mock 数据。...类型系统是后端开发很重要的一环,Nest是使用TypeScript实现的框架,因此原生就支持TypeScript,而且还大量使用了注解,熟悉 Spring 的朋友会感到十分亲切。...Module、Controller和Provider的关系见下图: Controller和Provider都在Module注册,容器会将Provider注入到Controller,Module之间可以相互引用...连接数据库 例子中使用mongoose连接和操作本地MongoDB数据库。为了更方便使用,Nest提供了@nestjs/mongoose包,对mongoose包装了一层,使其更符合Nest的使用风格。...操作数据库的步骤如下: app.module定义连接的数据库:MongooseModule.forRoot('mongodb://localhost/nest') cat.schema定义 Schema

    1.9K20

    基于 Express 应用框架的技术方案选型浅谈

    应用,大致的技术选型如下: Ejs Bootstrap Angular-Chart Mongoose Redis Sokect.io 这是一个简单的服务端页应用示例,使用 Ejs 模板引擎进行页面渲染...项目目录结构 Nuxt 的目录结构,服务端引入的同构代码放在.nuxt 目录,是 Webpack 打包后的代码文件,因此如果服务端不使用特殊的语法,完全不需要 Backpack 配置。...此项目为了支持服务端 TypeScript 语法,使用 Backpack 对服务端代码进行构建(不影响同构部分代码的构建,同构代码 Nuxt 里是通过读取文件的方式获取)。...配置文件 运行脚本设计 package.json的配置脚本如下: "build": "cross-env NODE_ENV=production nuxt build && backpack build...Ejs 模板引擎 JQuery JQuery 内置的$.ajax Bootstrap(可选) 客户端和服务端都不需要 Webpack 配置 对于 Express 新手而言,可以先尝试页应用 + MongoDB

    7K30
    领券