当前位置: 首页 > 软件库 > Web应用开发 > >

node-rem

授权协议 MIT License
开发语言 JavaScript
所属分类 Web应用开发
软件类型 开源软件
地区 不详
投 递 者 澹台玉石
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Node REM

NodeJS Rest Express MongoDB (REM) - a production-ready lightweight backend setup.

Live Demo (login with a test user: user1@example.com, user111 - inspect API calls to learn more)

�� It rains cats and dogs features:

  Typescript      Express   CORS     Helmet    DotEnv   joi (validation)   forever
  Mongoose        Passport  JWT      Await
  Tslint          Apidoc    Docker   Husky    Morgan    Travis   Unix/Mac/Win (Powershell)
  Tests
            Mocha  Chai     Sinon    istanbul
  MORE:
            HTTPS           HTTP2 (spdy)      Socketio 2.1       Init DB Data
            Slack message   Nodemailer        Mailgun            Email Templates    Forgot Password
            VSCode Debug    Dependabot        Codacy             File upload (multer)
      API
            API response    (data, meta: limit, offset, sort)    Transform res
            apiJson         Pagination query
            Regex query     Whitelist fields in response         Populate deep fields
            mstime          API response time     Stack trace in Response
      UI Example
            CRA, Typescript, React-router, Axios, PostCSS, Tailwind. Components: Login, Home, ItemView.
            Portable-react

�� Installation

Require: MongoDB and NodeJS v8.12.0 +

Clone this project:

git clone https://github.com/ngduc/node-rem.git your-app
cd your-app
rm -rf .git   (remove this github repo's git settings)
yarn
  • Update package.json and .env file with your information.
  • Run yarn dev, it will create a new Mongo DB "node-rem"
  • Verify yarn test can run all unit tests.
  • Verify: use Postman to POST http://localhost:3009/api/v1/auth/register to create a new user. (set payload to have email, password)
curl -k -d '{"email": "example1@email.com", "password": "testpsw"}' -H "Content-Type: application/json" -X POST http://localhost:3009/api/v1/auth/register

�� Commands

- Start MongoDB first. Verify .env variables.

yarn dev      launch DEV mode
yarn start    launch PROD mode
yarn stop

yarn test     Run tests   (requires MongoDB)

Frontend Example - uses this node-rem backend:

- First, start the Backend with: yarn dev

- Then, start UI:
cd ./ui
yarn
yarn start    (then open http://localhost:3000 - login with a test user: user1@example.com, user111)

�� Features

Your simple API Route Handler will have a nice syntax like this: (packed with vitamins cool stuffs)

exports.list = async (req: Request, res: Response, next: NextFunction) => {
  try {
    const data = (await User.list(req)).transform(req); // query & run userSchema.transform() for response
    apiJson({ req, res, data, model: User }); // return standard API Response
  } catch (e) {
    next(e);
  }
};

API Response is similar to JSON API standard:

GET http://localhost:3009/api/v1/users?fields=id,email&email=*user1* (get id & email only in response)
GET http://localhost:3009/api/v1/users?page=1&perPage=20 (query & pagination)
GET http://localhost:3009/api/v1/users?limit=5&offset=0&sort=email:desc,createdAt
{
    "meta": {
        "limit": 5,
        "offset": 0,
        "sort": {
            "email": -1,
            "createdAt": 1
        },
        "totalCount": 4,
        "timer": 3.85,
        "timerAvg": 5.62
    },
    "data": [
        {
            "id": "5bad07cdc099dfbe49ef69d7",
            "name": "John Doe",
            "email": "john.doe@gmail.com",
            "role": "user",
            "createdAt": "2018-09-27T16:39:41.498Z"
        },
        // more items...
    ]
}

Example of generated API Docs (using apidoc) - https://node-rem.netlify.com

�� Documentation

�� Thanks

All contributions are welcome!

UI Example uses Portable-react

  • node_modules安装及node-sass使用 终端进入项目文件夹运行以下命令 一、安装node_modules 1、输入npm init,一直回车 会生成package.json文件 2、npm i -D vue 然后就成功node_modules了 二、使用node-sass 1、创建css文件 2、创建index.scss文件,写入样式 3、运行node-sass -w ./css/i

  • Vue搭建项目时候使用的node-sass(5.0.0) 和 sass-loader(10.1.0), 同事服务器安装部署打包时出现上述错误,目测为版本不兼容导致, 于是在node-sass Issues中找到了答案: 由于我本地使用node版本为12.0.1,服务器为较新的16.0.1,所以出现了兼容问题 解决方案: 一:升级node-sass到最新版本即可(在用方案) npm uninstal

  • 背景 移动端设计稿一般是750px,如果没有用taro或者uniapp这类的框架,就需要自己来进行css的适配。 方案 一、Rem rem是相对于根元素html字体大小的一个css单位,默认情况下html的font-size=16px,所以1rem = 16px。可以动态设置html的字体大小,比如设置html的font-size=100px,那么1rem=100px。重点就是动态设置html字体

  • 怎样转换静态文件 安装: npm install px-rem -g 然后跑下命令 px2rem 你也可以设置一个配置文件 px2rem --config pxrem.config.js config 默认 config: { patterns: "**/*.css", pxToRemRatio: 0.01, ignoreCss: [], isReplace: false, convertBord

  • npm i postcss-px2rem-exclude -D 链接:https://www.npmjs.com/package/postcss-px2rem-exclude .postcssrc.js module.exports = { 'plugins': { 'postcss-px2rem-exclude': { remUnit: 75, prop

  • 第一步 安装 lib-flexible npm i lib-flexible --save 第二步 安装 px2rem-loader npm install px2rem-loader --save-dev 第三步 配置utils.js文件 添加到cssLoaders方法中 css-loader const cssLoader = { // loader: 'css-loader',

  • 安装lib-flexible 和 postcss-pxtorem 安装 npm install lib-flexible --save 或 yarn add lib-flexible --save npm install postcss postcss-pxtorem --save-dev 或 yarn add postcss postcss-pxtorem --save-dev 在mai

  • 最近接了个需求,以前做的pc端的项目要适配,如果适配的话,有两种方案: 媒体查询:麻烦 rem: 更麻烦 **方案:** 所以选择插件 postcss-pxtorem,但是这个插件只能转换css文件中的样式,不能转换行内样式。行内样式要特殊处理,这里的方案就是自定义loader在webpack编译时通过正则拿出px,并通过计算转换。 1.npm install postcss-pxtorem -

  • 1.安装插件 (1)安装px2rem-loader(devDependencies)   npm install px2rem-loader --save-dev (2)移动端适配解决npm包 "lib-flexible" (dependencies) npm install lib-flexible --save (3)main.js中引入 "lib-flexible" import 'lib-

  • 如何在vue-cli3.0中使用postcss-plugin-px2rem 插件 插件的作用是 自动将vue项目中的px转换为rem 。 为什么这三个中要推荐 postcss-plugin-px2rem呢? 因为 postcss-plugin-px2rem 这个插件 配置选项上有 exclude 属性,它可以配置 是否对 某个文件夹下的所有css文件不进行从px到rem的转换。 所以我们可以利用这

 相关资料
  • Node是kubernetes集群的工作节点,可以是物理机也可以是虚拟机。 Node的状态 Node包括如下状态信息: Address HostName:可以被kubelet中的--hostname-override参数替代。 ExternalIP:可以被集群外部路由到的IP地址。 InternalIP:集群内部使用的IP,集群外部无法访问。 Condition OutOfDisk:磁盘空间不足时

  • node 负责 peer node 子命令。

  • 这用于确定进程需要运行的节点的值。 由于分布式编程用于在不同节点上运行函数,因此在希望在不同机器上运行程序时,此功能非常有用。 语法 (Syntax) node() 参数 (Parameters) None 返回值 (Return Value) 这将返回本地节点的名称。 如果节点未分发,则返回nonode@nohost 。 例如 (For example) -module(helloworld)

  • The Po.et Node The Po.et Node allows you to timestamp documents in a decentralized manner. It's built on top of the Bitcoin blockchain and IPFS. Index The Po.et Node Index How to Run the Po.et Node De

  • Node-Lua是一款基于Lua实现的脚本和服务器引擎,它支持构建海量Lua服务(Context_Lua)并以多线程方式运行在多核服务器上,采用了任务多路复用的设计方案,有效利用了多核优势。node-lua致力于构建一个快速、简单易用的Lua脚本和服务器开发和运行环境。该引擎参考了Node-Js和Skynet的设计思想,并对其进行了整合和优化。 该引擎当前版本实现了以下特性: 引擎核心层同时支持同

  • 在程序里经常都需要生成一些特定格式的 id ,每种场合的需求都可能有些不一样,虽然写起来代码不复杂,但零零碎碎的东西做多了也挺烦的,于是设计了这个用于 node.js 的万能 ID 生成器。 AnyID 生成的 ID 为字符串(也可以纯数字),信息密度尽可能的高,也就是用最少的位数表示尽量多的信息。 AnyID 设计的首要考虑原则是 API 的直观易用。看看这些例子: 指定长度,随机值填充 21