【问题标题】:Make the variables in Node module usable by jQuery, Ember, etc使 Node 模块中的变量可供 jQuery、Ember 等使用
【发布时间】:2014-07-27 00:47:23
【问题描述】:

我真的是后端领域的新手,我正在尝试让其他普通 JavaScript 模块可以访问我在 Node 模块(称为 app.js)中创建的变量。如果重要的话,上述变量中​​的数据来自 MongoDB。

到目前为止,我只能将数据 res.send() 作为页面上无聊的纯文本。我希望能够将这些数据用于其他目的(例如制作表格)。那么如何将这些变量传递给 JavaScript,以便在 HTML 中正确显示它们呢?

【问题讨论】:

    标签: javascript node.js restify


    【解决方案1】:

    您可以使用 res.render 将数据传递给渲染的网页,使用 express 和 jam 看起来像这样:

    res.render('yourView', {
        data: yourVariable
    }
    

    Res.render 将转到您有 res.send 的地方。这应该与您的应用初始化 (app.js) 或在外部文件(如 (router.js))中,然后将其提供给您的应用。

    然后在用作网页的模板中可以这样调用:

    #{data}
    

    或者你可以这样列一个清单(如果你用的是翡翠)

    each data in rows
        li= data
    

    希望这就是您的意思,并且对您有所帮助:D。

    app.js 现在的样子:

    var express = require('express');
    var http = require('http');
    var bodyParser = require('body-parser');
    var methodOverride= require('method-override');
    var routes = require('./routes')(app);
    var path = require('path'); 
    var app = express();
    
    app.configure(function() {
        app.set('port', process.env.PORT || 3000);
        app.set('views', __dirname + '/views');
        app.set('view engine', 'jade');
        app.use(bodyParser.urlencoded({extended: true}))
        app.use(bodyParser.json())
        app.use(methodOverride());
        app.use(express.static(path.join(__dirname, 'public')));
    })
    
    app.get('/', function(req, res){
        res.render('home', {
            title: "Welcome to an example site"
        });
    });
    
    http.createServer(app).listen(('3000'), function(){
        console.log('Server Online');
    });
    

    【讨论】:

    • 谢谢!您能否详细说明 res.render 的用法?我把它放在哪里?有什么东西可以把它完全包裹起来吗?
    【解决方案2】:

    希望我能正确理解您的问题。

    既然你标记了restify,我假设你只是在你的res.send()东西中发送JSON?

    这样,您需要向您的用户提供文件,这些用户通过 AJAX 调用来获取 JSON 数据,然后在前端以您想要的方式对其进行操作。

    我建议尝试使用 backboneangular 之类的东西。使用这些前端 JS 框架,您可以将前端绑定到数据库。

    否则,您还可以查看express 或类似的东西,您可以在其中操作数据并执行您需要执行的任何操作,然后提供包含该数据的模板。

    我只是提出一些想法,因为这完全取决于您决定使用什么技术(那里有很多东西)。您甚至可以只向您的服务器发出纯 JS AJAX 请求来获取数据,但如果您在此类系统上构建 web 应用程序,那将变得乏味。

    【讨论】:

    • 您好!我有 Ember.js 可用作框架和 express,我对此还不太了解。你能提供一个小例子来说明如何使用它们来让它工作吗?谢谢!
    • 检查this link 以了解如何将其绑定到您的服务器。从 restify 提供数据并在 ember 中获取数据。这有帮助吗?
    猜你喜欢
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多