使用 Node.js 开发丰富的应用程序

2023-11-26

我是 Node.js 的新手,需要使用 Node.js 开发一个基于 Web 的丰富应用程序。

现在我正在研究 Node.js 的入门指南。 我有机会查看该页面here并对数百个框架感到困惑。我不知道如何选择合适的框架,需要这方面的帮助才能做出完美的决定。让我解释一下我的要求。

  1. 想要为所有功能开发 RESTful API。 (有 OAuth 上的库吗?)
  2. 想要在 API 之上开发 Web 应用程序。 应用程序的设计必须确保主要功能在客户端开发。意味着所有业务逻辑都必须在客户端开发。我听说 Backbone.js、Underscore.js 等一些库已经完成了这项工作,但对此没有明确的想法。

请建议我更适合我的要求的框架。

Thanks,


这是我在我的应用程序中使用的一个很好的技术堆栈:

服务器端:

  • Express.js
  • 车把
  • Passport.js
  • Mongoose
  • MongoDB
  • 草兰表单(但我目前正在实现我自己的表单处理程序)
  • 咖啡脚本

客户端:

  • 车把
  • Jquery
  • 需要.js
  • 骨干网.js
  • text.js(require.js 的插件)
  • Coffeescript(require.js 的插件。我的 .coffee 使用 r.js 在开发中编译客户端,在产品中编译服务器端)

如果您愿意,我稍后可能会制作一个示例应用程序。

[EDIT]

好的,这是一个示例应用程序。

项目结构:

forms
  |___ sampleForm.coffee
models
  |___ sampleModel.coffee
public
  |___ images
  |___ stylesheets
  | |___ style.less
  |___ sampleapp
    |___ main.js
    |___ cs.js
    |___ text.js
    |___ require.js
    |___ collections
    | |___ sampleCollection.coffee
    |___ models
    | |___ sampleModel.coffee
    |___ templates
    | |___ sampleTemplate.hbs
    |___ lib
    | |___ handlesbars.js
    | |___ backbone.js
    | 
    | |___ ...
    |___ views
      |___ sampleView.coffee
routes
  |___ index.coffee
views
  |___ index.hbs
app.js
application.coffee
package.json

服务器端:

app.js

require('coffee-script');
module.exports = require('./application.coffee');

应用程序.coffee

... standard express.js initialization
require("./routes")(app)
... start server

索引咖啡

SampleModel = require "../models/sampleModel"
module.exports = (app) =>
  app.get "/index", (req,res) =>
    return res.render "index"

  app.get "/samplemodels", (req,res) =>
    SampleModel.find {}, (err, models) =>
      return res.send 404 if err or !models
      return res.send models
    return

索引.hbs

<!DOCTYPE HTML>
<html>
<head>
  <title>Sample app</title>
  <link type="text/css" href="/stylesheets/style.css" rel="stylesheet" >
  <script src="/mainapp/require.js" data-main="/mainapp/main"></script>
</head>
<body>
  <div id="main-content"></div>
</body>
</html>

main.js

require.config({...}) // Configure requires.js...

require(["jquery", "cs!models/samplemodel", "cs!views/sampleview","cs!collections/samplecollection"], function ($, Model, View, Collection) {
  var collection = new Collection();
  collection.fetch();
  var view = new View({collection: collection});
  $("body").html(view.render().$el);
})

样品视图.coffee

define ["backbone", "jquery", "handlebars","text!templates/sampleTemplate.hbs"], (Backbone, $, Hbs, template) =>
  class MainView extends Backbone.View
    initialize: =>
      @collection.on "change", @render
      @template = Hbs.compile template
    render: =>
      html = @template {models: @collection.models}
      @$el.html(html)
      return @

样本模板.hbs

{{#models}}
  <p>{{name}}</p>
{{/models}}

好的,这就是最重要的。现在你必须学习如何使用主干.集合, 骨干模型,如何配置需要.js,如何配置Passport.js以及如何制作一个猫鼬模型。您可以使用减少中间件编译你的 style.less

不要忘记您可以使用以下命令预编译所有客户端应用程序r.js.

现在我希望这个页面不会被忘记,并且它会对将来遇到它的任何人有所帮助。

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

使用 Node.js 开发丰富的应用程序 的相关文章

随机推荐

  • 安装 pywin32 lib 后仍然收到错误“ImportError:没有名为 win32com.client 的模块”

    我已经从这里安装了 Python for Windows 扩展 库 http sourceforge net projects pywin32 files pywin32 但是当我在程序中导入 win32com client 时 我仍然收到
  • 与 Windows 7 兼容的最新 NodeJS [重复]

    这个问题在这里已经有答案了 我正在尝试为 Windows 7 安装 NodeJS 我尝试安装最新的 NodeJS 但它与 Windows 7 不兼容 我想知道是否有人知道可以在 Windows 7 上安装的最新版本的 NodeJS 是什么
  • 底层字符集是否仅取决于 C 实现?

    许多文本警告说 处理char整数值不可移植 例如假设 A 的值为 65 如 ASCII 所示 但是什么决定了该字符集是 ASCII 或扩展形式 还是其他字符集呢 是由操作系统决定的 还是由编译器决定的 我认为这不依赖于硬件 例如 Intel
  • C++ 向函数发送任何类型的参数

    事情是这样的 我想创建一个 void 函数 它将接收两种众所周知的值类型和另一种可以是任何类型的值 代码如下 void change settings string element short setting value switch se
  • 空感知函数调用? [复制]

    这个问题在这里已经有答案了 Dart 有一些空感知运算符 即可以执行以下操作 var obj obj foo foo is only called if obj null 这对于存储或传递给变量的函数也可能吗 通常的模式是 typedef
  • 禁用列表视图的交叉幻灯片选择

    我正在设计一个应用程序 它的中心有一个垂直平移的一维列表 用户可以通过翻转视图在列表之间水平翻转 当用户在列表视图中水平拖动时 它会选择该行 因为横向滑动 这不是我想要的行为 我最好希望 Flipview 开始左右平移 我认为这与rails
  • 允许在 Android Webview + jquery mobile 中进行远程 ajax 调用

    我正在使用 jquerymobile 开发一个 javascript HTML 应用程序 它向远程服务器发出 ajax 请求 该应用程序在 Chrome 上运行良好 仅在禁用网络安全的情况下启动 chrome 但是当我将其嵌入 Androi
  • Doctrine2 急切加载运行多个查询而不是 1 个

    我将 Symfony2 与 Doctrine2 最新版本 一起使用 并定义了此关系 ORM OneToMany targetEntity Field mappedBy event fetch EAGER ORM OrderBy name A
  • MySQL - 一组时间差的总和

    我想对所有时间差求和以显示志愿者的总工作时间 获取时间差的结果集很容易 Select timediff timeOut timeIn FROM volHours WHERE username skolcz 它给出了按小时列出的时间列表 但我
  • Python程序删除文本文件中的特定行[重复]

    这个问题在这里已经有答案了 我有一个文本文件 Thai Rectangle2 National Parks txt 其中包含以下几行 1 2 3 4 5 dy 0 5965 7 现在 我想删除该文本文件中的第 6 行 为此 我使用以下 py
  • @OrderColumn、@OneToMany 和集合的空索引列

    我正在尝试创建保留顺序的父子表 Hibernate 文档中的示例 7 8 显示了如何执行此操作 Entity public class Customer Id GeneratedValue public Integer getId retu
  • 为什么 Apache 的 RewriteRule 会泄露本地路径?

    我正在尝试使用 RewriteRules htaccess具有相对路径 但 Apache 似乎想要输出physical路径而不是server每当我尝试输出相对路径时 绝对路径和服务器根路径工作正常 例如 RewriteEngine On t
  • PHP:strlen返回字符长度而不是字节长度[重复]

    这个问题在这里已经有答案了 我有一个 WordPress 网站 我创建了简单的页面模板 例如 然后我使用这个模板创建了一个页面 该页面显示俄语字符串 意思是 你好 的长度 我期望看到 12 因为由 6 个字符组成的 UTF 8 编码的俄语字
  • 使用物理定律模拟轨道[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 在过去的几周里 我一直在尝试模拟太阳系模拟中的轨道 这是我作为大学模块的一部分进行的 简而言之 我的模拟是使用 Ogre3D 渲染引擎用 C 编写的 我尝试使用牛顿万有引力定律来
  • 未捕获的类型错误:无法读取 null 的属性“offsetTop”

    我正在使用 HTML CSS 和 JavaScript 创建一个带有粘性和响应式导航栏的网页 我创建了响应式导航栏 并试图使其具有粘性 问题是它不粘并且显示错误 未捕获的类型错误 无法读取 null 的属性 offsetTop HTML 代
  • Python3 和 pandas

    我检查了一些其他的答案 并在谷歌上进行了广泛的搜索 似乎找不到有人问过 回答过这个问题 我运行的是 Ubuntu 12 04 我安装了python2 7和python3 2 我运行了 sudo apt get install python
  • C 与 C++ 中具有静态存储持续时间的对象的初始化 [重复]

    这个问题在这里已经有答案了 可能的重复 main 返回什么 例如 以下代码编译时不会出现任何警告 include
  • 使用 Xamarin Form 获取设备属性?

    我正在使用 xamarin 表单设计一个跨平台应用程序 每个页面 视图 表单都是从代码隐藏设计的 现在我想读取用户使用的设备的高度和宽度 根据这些值 我想放置一些页眉和页脚 为了获取 Xamarin Forms 解决方案中的屏幕宽度 或高度
  • 预计加入路径!休眠错误

    我尝试进行连接 但不断收到此错误 预计加入路径 选择 t CourseId FROM 任务作为 t INNER JOIN 课程为 c CoursePermissions 为 cp 哪里 t CourseId 1 I have const s
  • 使用 Node.js 开发丰富的应用程序

    我是 Node js 的新手 需要使用 Node js 开发一个基于 Web 的丰富应用程序 现在我正在研究 Node js 的入门指南 我有机会查看该页面here并对数百个框架感到困惑 我不知道如何选择合适的框架 需要这方面的帮助才能做出