javascript - 如何在客户端访问服务器设置的对象

标签 javascript node.js express

我正在将 nodeexpress 一起使用,我希望服务器发送访问对象。 例如

服务器端:

router.get('/some_page/', (req, res) => {
    res.render('some_page', {
        data: {"somevar1":"somevalue", "somevar2":"somevalue2"}
    });
});

客户端javascript:

var objSentFromSrv = ??? // here i want this object and then perform some action on it

这可能/合法吗?

编辑:

我正在使用 handlebars 作为模板引擎。

想通了。

function middlewareAppendingLocals(req, res, next) {
    res.locals.layoutV = myValue;

    next();
}

router.post('/page/', middlewareAppendingLocals, (req, res) => {
    res.render('page_to_render');
});

在我的例子中,这个变量来自数据库,我根据从其他页面发布的 id 给它。但我仍然如何从 javascript 访问它,而不仅仅是形成 .hbs 布局文件。

然后 page_to_render 有,我可以给你 handlebars {{}} 来得到它。

最佳答案

您需要像这样将对象编码为 JSON:

router.get('/some_page/', (req, res) => {
    res.send(JSON.stringify({
        data: {"somevar1":"somevalue", "somevar2":"somevalue2"}
    }));
});

然后在前端使用AJAX,使用jQuery就可以了

$.get('/some_page/', function(data) {
    var objSentFromSrv = JSON.parse(data);
});

或更短:

$.getJSON('/some_page/', function(data) {
    var objSentFromSrv = data;
});

关于javascript - 如何在客户端访问服务器设置的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40951319/

相关文章:

node.js - 如果用户已登录,则希望重定向该用户

node.js - 如何使用 Amazon DynamoDB JavaScript SDK 与 Promise

javascript - Axios 未传递 Content-Type header

javascript - RegExp 适用于 JS 和 PHP,但不适用于 Java

javascript - Webpack 错误 : configuration. 模块

node.js - 如何在 Alexa Skill lambda 函数中正确指定 SSML?

javascript - 当发送带有文件和字段的 FormData 时,busboy 仅触发文件事件

javascript - 如何将 Google 标签管理器与使用 JSON-LD 和变量的多模式产品评论结合使用

Mysql 表优化用于过滤和防止文件排序

Node.js-Socket.io-Express 3