使用 Node.JS

2024-01-10

昨晚我转储了 Windows 7 并格式化了我的硬盘驱动程序以移植到基于 Linux 的操作系统,纯粹是因为我想开始使用Node.JS

所以我已经安装了Node.JS并做了一些测试,http 服务器和套接字等。

我想做的是构建一个与 MVC 框架紧密集成的 HTTP 服务器,但在开始之前,我需要学习如何在 Node.js 中高效构建。

例如,在 PHP 作为我的框架中,我将创建一个引导加载系统来加载所有基类等,然后我将触发我的事件系统,准备开始附加回调。

我将继续处理请求等,直到生成输出,然后将其发送到处理标头等的输出处理程序

但 Node 是一个全新的环境,我想知道在 Node 中构建系统的最佳实践。

我寻找的信息更多地与设计结构有关,而不是应用程序的实际编码、如何加载库、在哪里加载库等。

任何帮助表示赞赏。


到目前为止,我的 WebApplication 进展顺利,我已经以非常传统的方式构建了我的应用程序,并且有点程序化。

我开始创建一个目录结构,如下所示:

<root>
    startup.js
    /public/
        favicon.ico
        /images/
        /stylesheets/
        /javascripts/
    /system/
        init.js
        config.js
        /libs/
            /exceptions/
                http.js
                server.js
    /application/
        /views/
            /_override/
                /errors/
                    generic.view
            /partials/
                sidebar.voew
            index.view
        /controllers/
             index.js
        /models/
            users.js

这个目录结构就像大多数基于 MVC 的 Web 应用程序一样,所以使用这种方法我感觉很舒服。

启动文件是节点作为入口点执行的文件,node startup &看起来像这样:

/*
    * Header of t he file, Copyright etc
*/

var _Intitialize = require("./system/init.js");

//Displays the command line header, title, copyright etc
_Intitialize.DisplayCommandLineHeader();

//Check the enviroment, Permissions, Ports etc
_Intitialize.CheckEnviroment();

//Start the server and listen the port.
_Initialize.StartServer();

init 文件是主要工作,它告诉系统的所有其他区域运行、停止等。

我在库中有一个名为serverhandler.js,这是 init.js 所必需的,然后我创建一个服务器并将回调分配给ServerHandler.Listener。然后监听请求,检查该文件是否存在于公共目录中,如果存在,则分块读取并发送回。

如果在公共场合没有找到文件,它将使用 Route.Create("/path?params"); 创建一条路由。它阻止 uri 中的 3 个元素:控制器、方法、参数,然后加载控制器文件(如果存在)。

我采取了抛出错误页面的方法,如下所示:

if(!FileSystem.exists(RequiredPath))
{
     throw new HTTPExceptions.FileNotFound();
}

希望这可以帮助一些人开始使用 Node.js。


看一下http://dailyjs.com/2010/11/01/node-tutorial/ http://dailyjs.com/2010/11/01/node-tutorial/,这非常相关。

我建议也看看当前的模块https://github.com/joyent/node/wiki/modules https://github.com/joyent/node/wiki/modules并阅读您感兴趣的领域中的任何项目的代码,尤其是。中间件、路由和模块加载器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Node.JS 的相关文章

随机推荐

  • Google+ 人物搜索 API 不返回任何项目

    Google 人物搜索是否已弃用 我正在使用他们页面上的 Try this APIhttps developers google com web api rest latest people search https developers
  • 绘制多个更新菜单

    建立在this https stackoverflow com questions 71785083 updating multiple data attributes with plotly帖子 我正在尝试创建两个updatemenus
  • GitKraken 与 git-crypt 的互操作性

    git 密码 https github com AGWA git crypt使用 git CLI 时效果非常好 我已经为 git crypt 设置了一切 gitattributes 创建 编辑我想要加密的文件后 我执行 git add 文件
  • Payumoney Codeigniter 集成

    I am working on CodeIgniter payUmoney integration I have a registration form from where one registers and get paid with
  • 您的应用程序委托集在哪里?谁初始化它的 window 和 viewController 属性?

    我有一个关于 IOS 应用程序的新手问题 如果我创建一个名为 TestForStackOverflow 的新的基于视图的应用程序 Xcode 会自动为 TestForStackOverflowAppDelegate h 创建如下代码 cla
  • Prolog 中的树

    我正在 Prolog 中研究二叉树 我知道结构 但我不明白幻灯片中的这段代码 binary tree void binary tree tree Element Left Right binary tree Left binary tree
  • 如何在r中为异方差数据设置加权最小二乘?

    我正在对人口普查数据进行回归 其中因变量是预期寿命 并且有八个自变量 数据是按城市汇总的 因此我有数千个观察结果 不过 我的模型有点异方差 我想运行加权最小二乘法 其中每个观察值均按城市人口加权 在这种情况下 这意味着我想通过总体平方根的倒
  • SQL Server 2008 R2 - sqlcmd bat 文件在文件夹中运行一批 sql 查询,但它们不按文件名顺序运行

    我写了一堆sql脚本 我希望在文件夹中按顺序批量运行 阅读完后 我求助于创建一个bat文件 其中包括使用sqlcmd 对于这组特定的脚本 当我运行 bat 时 它似乎没有按顺序运行 我不知道发生了什么 因为我尝试在开头使用前缀数字对 sql
  • IPython Notebook:默认编码是什么?

    我已经使用 utf 8 编码创建了一个包 当调用一个函数时 它返回一个DataFrame 其中有一列以 utf 8 编码 在命令行使用 IPython 时 显示该表的内容没有任何问题 使用笔记本时 它崩溃并出现错误 utf8 codec c
  • 通用 getter 和 setter 方法[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在尝试编写一个抽象类 这个类将是一个 Field 会有不同类型的字段 需要扩展字段类并编写自己的 setter 类 例如 将会有一个字符
  • ZipArchive 在 Laravel 中不起作用

    我有 laravel 项目 想要添加压缩文件的功能 我正在使用 php ZipArchive 当我尝试仅使用 PHP 创建 ZIP 文件时 我很幸运 但是当我尝试使用 Laravel 时 未创建 zip 文件 所以我添加了 使用ZipArc
  • 时间:2019-03-17 标签:c++STLmin_element

    我想找到数组中的最小元素 但如果最小元素出现多次 那么我想要该元素的最后一次出现 我用了std min element 和我的comp 功能 vector
  • Julia 浮点比较为零

    julia gt r 3 3 Array Float64 2 1 77951 0 79521 2 57472 0 0 0 630793 0 630793 0 0 0 0 1 66533e 16 julia gt sort abs diag
  • 使用核心转储在 Linux 中进行调试

    使用 GDB 调试核心转储时的 最佳实践 是什么 目前 我面临一个问题 我的应用程序的发行版是在没有 g 编译器标志的情况下编译的 我的应用程序的调试版本 使用 g 编译 已存档 以及源代码和发布二进制文件的副本 最近 当用户给我一个核心转
  • 如何将图像保存为变量?

    现在 我有一个带有精灵的 python 游戏 它从其目录中的文件中获取图像 我想让它变得我什至不需要这些文件 不知何故 将图像预先存储在变量中 以便我可以从程序中调用它 而无需额外的 gif 文件的帮助 我使用图像的实际方式是 image
  • 如何在jsp中显示图片?

    我有一个字节数组图像 我需要在 jsp 页面中以 jpg 格式显示该图像 单击该图像时 我可以将图像下载到我的电脑上 我正在从 mysql 数据库将图像加载为字节数组 我的代码是 ResultSet res statement execut
  • SCORM 1.2 API 示例/教程

    我花了相当多的时间搜索 SCORM 1 2 API 教程 示例 结果证明这是一项相当困难的任务 我发现的唯一样本是这样的 http www vsscorm net 2009 05 30 ground rules http www vssco
  • maven-compiler-plugin:jar:3.8.1 丢失

    尝试使用 3 8 1 而不是 3 8 0 但收到消息 警告 org apache maven plugins maven compiler plugin jar 3 8 1 的 POM 丢失 没有可用的依赖信息 我的 pom xml 在 3
  • 如果 File 不存在,如何确定它是否是文件或目录?

    File isFile and File isDirectory 不仅当File不是指定的类型 而且当File其本身不存在于文件系统上 如何判断是否File当文件或目录不存在时代表它 一般来说 一个特定的路径既可以代表一个目录 也可以代表一
  • 使用 Node.JS

    昨晚我转储了 Windows 7 并格式化了我的硬盘驱动程序以移植到基于 Linux 的操作系统 纯粹是因为我想开始使用Node JS 所以我已经安装了Node JS并做了一些测试 http 服务器和套接字等 我想做的是构建一个与 MVC