nodeframe框架系列之一 —— 快速入门

简介: Nodeframe是什么? 模块化的Node.js网站和WebService开发框架。 网站即模块,服务即模块; 支持基于规则的路由,MVC风格路由和RESTful路由;基于express, swig, connect等主流的成熟node技术,上手门槛低;支持可扩展特性、中间件等,内置微信公众号特性、单元测试中间件; 提供了一个类似phing的node任务执行引擎

Nodeframe是什么?


模块化的Node.js网站和WebService开发框架。
  1. 网站即模块,服务即模块; 
  2. 支持基于规则的路由,MVC风格路由和RESTful路由;
  3. 基于express, swig, connect等主流的成熟node技术,上手门槛低;
  4. 支持可扩展特性、中间件等,内置微信公众号特性、单元测试中间件; 
  5. 提供了一个类似phing的node任务执行引擎,方便部署和维护。

快速入门

第一步、部署Nodeframe

  1. 在空闲的硬盘中新建一个项目目录。如:web
  2. 在web目录中创建一个文件“package.json”写入以下内容:
    {      
        "name": "Project Name",  
        "version": "0.0.1",  
        "private": true,  
        "scripts": {  
            "start": "node app-server.js"  
        },  
        "dependencies": {  
            "nodeframe": "*"  
        }  
    } 
  3. 从控制台进入web目录运行“npm install”。(请确保你的机器已经成功安装node)
  4. 在web目录中创建一个文件“app-server.js”写入以下内容:
    require('nodeframe').start();
  5. 在控制台运行“node app-server.js”
  6. 尝试在浏览器中访问“http://localhost:3000”(如果可以正常打开,恭喜你已经部署好代码)

第二步、创建最简单的网站模块

  1. 启动项目,框架会自动创建etc、public、web_modules等目录
  2. 在web_modules中创建目录“hello_node”作为网站模块
  3. 在hello_node中新建文件“bootstrap.js”并写入以下内容:
    module.exports = {
    
        version: '0.0.1', // 模块的版本号
    
        routes: { // 模块路由设置
    
            '/': {
                rule: { // 路由的类型,可选的值为:rule、mvc或rest
                    rules: { //路由列表
                        '/': { // 子路径
                            get: 'home.index' // 请求的类型以及控制器方法名,请求类型的可选值为:get或post
                        }
                    }
                }
            }
    
        }
    };
  4. 在hello_node中创建控制器目录“controllers”和视图目录“views”
  5. 在controllers中新建控制器“home.js”并写入一下内容:
    module.exports = {
        index: function (router) { // 方法名(注意:文件名即为控制器名)
    
            router.appendViewData({ // 组装需要发送到视图的数据
                title: 'First website', // 网页标题
                content: 'Hello nodeframe!' //网页内容
            });
    
            // 渲染index方法的视图(注意:home控制器的index方法对应“home_index.swig”视图)
            router.renderResponse();
        }
    };
  6. 在views中新建视图“home_index.swig”并写入一下内容:
    <html>
    <head>
        <title>{{ title }}</title>
    </head>
    
    <body>
    {{ content }}
    </body>
    
    </html>
  7. 更新项目配置文件“etc/development.js”的内容如下:
    module.exports = {
        // 开启模块功能(注意:如果需要开启其他功能可以顺序列出)
        features: [
            'modules'
        ],
    
        modules: {
            hello_nodeframe: {
                route: "/hello" // 配置模块总路径,可以是任何你想要的路径。如:/test和/module1m(注意:在正常访问时,框架会将此路径跟模块中配置的路由合并)
            }
        }
    };
  8. 在控制台重新启动项目“node app-server.js”
  9. 尝试在浏览器中访问地址“http://localhost:3000/hello”(如果在页面中看到”Hello nodeframe!“表示项目配置成功)
目录
相关文章
|
JavaScript
Element el-radio 单选框详解
本文目录 1. 用途 2. 单选框 3. 单选框样式 4. 单选框组 4. 单选框组样式 5. 尺寸调节 6. 绑定值变化事件 7. 小结
1994 0
Element el-radio 单选框详解
|
Web App开发 人工智能 Android开发
iconfont.cn 阿里出品的矢量图标库
Iconfont.cn是阿里巴巴推出的矢量图标库,其中涵盖了1000多个常用图标,并在持续更新中。(目前已有7000+图标,部分图标为用户上传,因此默认不公开,但是可以搜索到。)
12745 0
iconfont.cn 阿里出品的矢量图标库
|
机器学习/深度学习 人工智能
深度学习之音乐生成与风格转换
基于深度学习的音乐生成与风格转换是近年来人工智能领域的一个热门研究方向,涉及利用深度学习技术生成音乐作品或将音乐从一种风格转换为另一种风格。这种技术可以自动化创作过程,同时保持音乐的艺术性和风格特征,广泛应用于娱乐、音乐制作、交互式音乐生成等多个场景。
341 1
|
9月前
|
前端开发 JavaScript 应用服务中间件
前端跨域问题解决Access to XMLHttpRequest at xxx from has been blocked by CORS policy
跨域问题是前端开发中常见且棘手的问题,但通过理解CORS的工作原理并应用合适的解决方案,如服务器设置CORS头、使用JSONP、代理服务器、Nginx配置和浏览器插件,可以有效地解决这些问题。选择合适的方法可以确保应用的安全性和稳定性,并提升用户体验。
6383 90
|
9月前
|
设计模式 机器学习/深度学习 前端开发
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
|
存储 Serverless C语言
【C语言】时间函数详解
在C语言中,时间处理功能由标准库 `time.h` 提供。使用这些函数时,需要包含 `#include <time.h>` 头文件。以下是一些常用的时间函数的详细讲解,包括函数原型、参数说明、返回值说明以及示例代码和表格汇总。
473 9
|
运维 测试技术
拆分软件测试流程,一张图秒杀所有面试
本文主要介绍了软件测试流程的核心内容,包括需求分析、测试用例编写、测试执行、缺陷提交及回归测试等关键步骤。以迭代测试为例,详细说明了每个环节的具体操作和注意事项,并提供了一张测试流程图以便理解。测试流程确保了软件质量,是面试中常见的考察点。
968 7
拆分软件测试流程,一张图秒杀所有面试
|
JavaScript
ThreeJs实现简单的动画
这篇文章介绍了如何使用Three.js实现简单的动画效果,并提供了利用requestAnimationFrame动态改变模型状态的代码示例。
247 0
ThreeJs实现简单的动画
|
Web App开发 存储 安全
就一次!带你彻底搞懂CSRF攻击与防御
与XSS攻击相比,利用CSRF漏洞发动攻击会比较困难,这也是在网络上看起来CSRF的人气小于XSS的原因之一。下面我们来利用CSRF漏洞发起攻击,并针对攻击进行防御,彻底弄懂CSRF,话不多说,我们直接开冲。
什么是 CSRF?如何防止 CSRF 攻击?
CSRF 攻击是一种常见且危险的 Web 安全漏洞,攻击者可以通过伪造用户请求,执行恶意操作,作为程序员,为了防御 CSRF 攻击,常见的策略包括使用 CSRF Token、检查 Referer 或 Origin 头、设置 SameSite Cookie 属性以及双重提交 Cookie。 因为程序员对于 CSRF 攻击可以做的事情还是很有限,所以,承担主要责任的是安全部门或者运维部门,但是作为程序员,我们需要具备这些安全意识,在安全等级比较高的需求中也需要把这些安全因素考虑在内。