Giter Site home page Giter Site logo

wizzercn / nodewk Goto Github PK

View Code? Open in Web Editor NEW
531.0 67.0 176.0 12.13 MB

基于Sailsjs的Node.js开源企业级开发框架

Home Page: https://wizzer.cn

JavaScript 61.59% CSS 11.34% HTML 26.43% PHP 0.59% Dockerfile 0.02% Less 0.03%
nodejs node sailsjs sails

nodewk's Introduction

NodeWk 1.0.4

基于Sails.js MVC开发,实现常用的系统、微信、CMS等功能

有基于 NodeWk 开发的B2C商城系统 PC+WAP 需要的联系作者QQ: 11624317

PS:如果对Java开发框架感兴趣,可以看这里:https://github.com/Wizzercn/NutzWk

在线演示地址

https://nutzwk.wizzer.cn NodeWk 和 NutzWk-V4/V5 前端是一样的

====== 基于Sailsjs的Node.js开源企业级开发框架

NodeWk 1.0.x 运行环境:

  • Node 最新版
  • Redis 最新版
  • MySql 5.x

NodeWk 1.0.x 特性:

  • 集成Email服务(nodemailer)
  • 集成定时任务(node-schedule)
  • 集成验证码插件(captchapng)
  • 集成微信api插件(wechat-oauth/wechat-api)
  • 集成日志文件插件(winston)
  • 集成图片处理插件(gm)
  • 集成日期插件(moment)
  • 集成数据库备份插件(mysqldump)
  • 集成文件打包插件(jszip)
  • 集成Ejs模板引擎
  • 后台管理界面采用Pjax+Bootstrap
  • 支持国际化字符串
  • 支持动作链
  • 自定义路由

使用说明:

  • 搭建Node.js运行环境
  • 创建空的数据库,使用nodewk.sql还原数据库
  • 修改数据库连接配置 /config/custom/mysql.js
  • 修改数Redis连接配置 /config/custom/redis.js
  • npm i 安装(hiredis报错或报 Error: Can't find Python executable都不影响项目运行)
  • node app.js 或 npm start 运行 (如果启动时项目根目录不能创建.tmp文件夹,请手动创建)
  • http://127.0.0.1/sysadmin 访问后台
  • 用户名:superadmin 密码:1

其他说明:

  • /api/policies/sessionAuth.js 后台权限验证
  • /api/policies/oauthAuth.js API TOKEN权限验证
  • 解决grunt占用CPU过高问题,可以将 Gruntfile.js 重命名,或根目录增加 .sailsrc 文件,文件设置内容:
{
  "generators": {
    "modules": {}
  },
  "hooks": {
      "grunt": false
  },
  "paths": {
      "public": "assets"
  }
}

关于

  •   本项目完全开源,商用完全免费
  •   欢迎打赏,以资鼓励

打赏

nodewk's People

Contributors

wizzercn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nodewk's Issues

集成 apidoc 教程

本文基于NodeWk框架

一、安装插件

npm i apidoc -save
npm i grunt-apidoc -save

二、配置

package.json

增加配置项

"apidoc": {
  "title": "Sunshop"
},

tasks/config/apidoc.js

module.exports = function (grunt) {
  grunt.config.set('apidoc', {
    myapp: {
      src: "api/controllers/api",
      dest: "apidoc/",
      options: {
        includeFilters: [ ".*\\.json$" ]
      }
    }
  });
  grunt.loadNpmTasks('grunt-apidoc');
};

tasks/register/compileAssets.js

module.exports = function (grunt) {
    grunt.registerTask('compileAssets', [
        'clean:dev',
        'jst:dev',
        'less:dev',
        'copy:dev',
        'coffee:dev',
    'apidoc:myapp' // <-- apidoc
    ]);
};

pi/controllers/api/oauth.json 一个API文档示例,详细参数见apidoc官网。

/**
 * @api {POST} /api/oauth/token Token
 * @apiName Token
 * @apiGroup Oauth
 * @apiVersion 1.0.0
 * @apiDescription 获取Token
 * @apiPermission anyone
 *
 * @apiParam {string} client_id client_id
 * @apiParam {string} client_secret client_secret
 *
 * @apiParamExample {json} 示例
 *   POST /api/oauth/token
 *   {
 *      "client_id": "client_id",
 *      "client_secret": "client_secret"
 *   }
 *
 * @apiSuccess (成功) {number} code 0
 * @apiSuccess (成功) {string} msg success
 * @apiSuccess (成功) {Object} data Token对象
 * @apiSuccess (成功) {string} data.token Token
 * @apiSuccess (成功) {number} data.expires 失效时间(24小时)请保存若失效重新获取
 * @apiSuccess (成功) {number} data.appid AppId
 * @apiSuccessExample {json} 示例
 *   HTTP/1.1 200 OK
 *   {
 *     "code": 0,
 *     "msg": "success",
 *     "data": {
 *       "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOjIsImV4cCI6MTQ2NDE1NjA2OTg3Nn0.4i_o7gCjCKvOImSi4peCMgCUrzpdgbtmvMECKf5wkqE",
 *       "expires": 1464156069876,
 *       "appid": 2
 *     }
 *   }
 *
 * @apiError (失败) {number} code 1:client_id不存在 2:client_id禁用 3:client_secret错误 4:参数错误
 * @apiError (失败) {string} msg 错误文字描述
 * @apiErrorExample {json} 示例
 *   HTTP/1.1 200 OK
 *   {
 *     "code": 1
 *     "msg": "client_id has error"
 *   }
 */

框架配置静态目录,让其可访问:
config/http.js

customMiddleware: function (app) {
    app.use('/apidoc', require('express')['static'](require('path').normalize(__dirname + '/../apidoc')));
},

系统集成的cms如何使用

请问系统集成的cms如何访问啊,就是除了管理员可以登录编辑以外,普通的用户到哪里去看发布的文章啊

一些BUG反馈

浏览器:Firefox 48.0.2 Chrome 50.0.2661.102 m
操作系统:win10
发现的一些问题
1、首页显示
Firefox下首页空白 chrome能正常显示 版本信息、捐赠清单等
2、角色管理
新建角色的时候,Firefox不能正常展示表单,chrome可以,但chrome在第二步的时候无法加载菜单树,一直loading
截图反馈如下
qq 20160831153814
qq 20160831153852
qq 20160831153943

运行不了。

Error occurred in session middleware :: 'ReplyError: ERR unknown command \'get\'\n at new Command (E:\\source\\workspace\\NodeWk-master\\node_modules\\redis\\lib\\command.js:12:22)\n at RedisClient.get (E:\\source\\workspace\\NodeWk-master\\node_modules\\redis\\lib\\commands.js:62:47)\n at RedisStore.get (E:\\source\\workspace\\NodeWk-master\\node_modules\\connect-redis\\lib\\connect-redis.js:146:18)\n at session (E:\\source\\workspace\\NodeWk-master\\node_modules\\express-session\\index.js:444:11)\n at Object._.defaults.session [as handle] (E:\\source\\workspace\\NodeWk-master\\node_modules\\sails\\lib\\hooks\\http\\get-configured-http-middleware-fns.js:102:11)\n at next (E:\\source\\workspace\\NodeWk-master\\node_modules\\express\\node_modules\\connect\\lib\\proto.js:174:15)\n at Object.cookieParser [as handle] (E:\\source\\workspace\\NodeWk-master\\node_modules\\sails\\node_modules\\cookie-parser\\index.js:48:5)\n at next (E:\\source\\workspace\\NodeWk-master\\node_modules\\express\\node_modules\\connect\\lib\\proto.js:174:15)\n at Object.startRequestTimer [as handle] (E:\\source\\workspace\\NodeWk-master\\node_modules\\sails\\lib\\hooks\\http\\get-configured-http-middleware-fns.js:134:7)\n at next (E:\\source\\workspace\\NodeWk-master\\node_modules\\express\\node_modules\\connect\\lib\\proto.js:174:15)\n at Object._exposeSailsOnReq [as handle] (E:\\source\\workspace\\NodeWk-master\\node_modules\\sails\\lib\\hooks\\http\\initialize.js:198:16)\n at next (E:\\source\\workspace\\NodeWk-master\\node_modules\\express\\node_modules\\connect\\lib\\proto.js:174:15)\n at Object.expressInit [as handle] (E:\\source\\workspace\\NodeWk-master\\node_modules\\express\\lib\\middleware.js:30:5)\n at next (E:\\source\\workspace\\NodeWk-master\\node_modules\\express\\node_modules\\connect\\lib\\proto.js:174:15)\n at Object.query [as handle] (E:\\source\\workspace\\NodeWk-master\\node_modules\\express\\node_modules\\connect\\lib\\middleware\\query.js:43:5)\n at next (E:\\source\\workspace\\NodeWk-master\\node_modules\\express\\node_modules\\connect\\lib\\proto.js:174:15)\n at Function.app.handle (E:\\source\\workspace\\NodeWk-master\\node_modules\\express\\node_modules\\connect\\lib\\proto.js:182:3)\n at Server.app (E:\\source\\workspace\\NodeWk-master\\node_modules\\express\\node_modules\\connect\\lib\\connect.js:67:37)\n at Server. (E:\\source\\workspace\\NodeWk-master\\node_modules\\sails-hook-sockets\\node_modules\\engine.io\\lib\\server.js:443:22)\n at emitTwo (events.js:106:13)\n at Server.emit (events.js:191:7)\n at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:547:12)'
qq 20161205154846

ui和版本

ui可否能更新个好看的主题。权限粒度需要优化。sails更新到1.0.0了。我有时间,也想fork下,用typescript重写下。

求大神帮我看看,检查了好多遍...连接数据库一直失败...

Redis 没问题,

/**
 *  auth_pass Redis连接密码
 * Created by root on 9/17/15.
 */
module.exports.redis = {
  host: '127.0.0.1',
  port: 6379,
  auth_pass: ''
};

mysql连接就有问题了

module.exports.mysql = {
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'nw',
  pool: true,
  connectionLimit: 50,
  waitForConnections: true
};

自己新建的sails.js连接数据库没问题...
image

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.