当前位置: 首页 > 面试题库 >

使用node.js进行丰富的应用开发

苗森
2023-03-14
问题内容

我是Node.js的新手,已经提出了使用Node.js开发基于富Web的应用程序的要求。

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

  1. 想要为所有功能开发RESTfull API。(是否有OAuth图书馆?)
  2. 想要在API之上开发Web应用程序。必须以某种方式设计应用程序,以便在客户端开发主要html" target="_blank">功能。意味着,所有业务逻辑都必须在客户端开发。我听说像Backbone.js,Underscore.js之类的某些库已经完成了这项工作,但是对此并没有明确的想法。

请向我建议可以满足我的要求的框架。

谢谢,


问题答案:

这是我用于应用程序的良好技术堆栈:

服务器端:

  • Express.js
  • Handlebar
  • Passport.js
  • Mongoose
  • MongoDB
  • Caolan表单(但是我目前正在实现自己的表单处理程序)
  • Coffee script

客户端:

  • Handlebar
  • jQuery
  • Require.js
  • Backbone.js
  • text.js(require.js的插件)
  • Coffeescript(require.js的插件。我的.coffee是使用r.js在dev的客户端编译和在prod的服务器端编译)

如果需要的话,我可能会在以后制作一些示例应用程序。

[编辑]

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

项目结构:

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

索引coffee

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

index.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);
})

sampleview.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 @

sampleTemplate.hbs

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

好的,这很重要。现在,您将学习如何使用Backbone.Collection,Backbone.Model,如何配置Require.js,如何配置Passport.js以及如何创建Mongoose模型。您可以使用Less中间件来编译样式。

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

现在,我希望不要忘记此页面,希望对以后遇到的任何人有所帮助。



 类似资料:
  • 要表现色彩里的浓烈、富足感可藉由组合一个有力的色彩和它暗下来的补色。例如,深白兰地酒红色就是在红色中加了黑色,就像产自法国葡萄园里陈年纯美的葡萄酒,象征财富。白兰地酒红色和深森林绿如果和金色一起使用可表现富裕。这些深色、华丽的色彩用在各式各样的织料上,如皮革和波纹皱丝等等,可创造出戏剧性、难以忘怀的效果。这些色彩会给人一种财富和地位的感觉。 补色色彩组合 原色色彩组合 单色色彩组合 49 3 49

  • 问题内容: 对于客户,我们需要为集成测试生成详细的测试报告,该报告不仅显示所有内容都是绿色的,而且还显示测试的结果。我的同事和我都是懒惰的人,我们不想破坏电子表格或文本文档。 为此,我想到了一种在每个@Test带注释的方法和每个测试类上使用JavaDoc注释记录更复杂的集成测试的方法。对于测试人员来说,查看哪个要求,Jira票证或测试所链接的内容以及测试实际尝试执行的操作是一个很好的帮助。我们也希

  • 本文向大家介绍使用Raygun对Node.js应用进行错误处理的方法,包括了使用Raygun对Node.js应用进行错误处理的方法的使用技巧和注意事项,需要的朋友参考一下 用我们的 raygun4node 包,能提供一种把您的Node.js错误发送给Raygun的便利办法. 它可以很容仪的使用 npm 安装:   其能给您提供一个raygun客户端,您可以用它来配置您的API key,并且可以用来

  • 问题内容: 因此,我和我的团队都购买了Docker- 对于部署和测试而言,它很棒。我真正的问题是如何建立出色的开发人员体验,尤其是围绕编写Python应用程序的问题,但是这个问题可以推广到nodejs,Java等。 问题:编写Python应用程序时,我真的很喜欢具有不错的linting / autocomplete功能,那里有一些非常好的编辑器(Atom,VSCode,PyCharm)提供了这些功

  • 2.2.3.丰富的特性 Linux 系统本身就具有很多实用的特性。 Android 从中受益良多,例如内存管理、电源管理和网络部分。

  • 问题内容: 我实际上是在玩Javascript做一个小游戏,我想实现在http://www.crockford.com/javascript/inheritance.html上发现的内容,该内容类似于: 我找不到用于使这种开发成为可能的库的任何参考。有任何想法吗?否则,我正在寻找一个好的库来帮助我的OOP开发。 谢谢 编辑: 我正在寻找Node.js的OOP解决方案/库。请注意,我是Node.js