我正在使用node.js + express + handlebars构建应用程序,并且正在寻找一种方法,我可以将把手数据从服务器传递到客户端javascript文件。例如:
ExecutorService executor = Executors.newFixedThreadPool(15);
for (int i=0;i<=15;i++) {
Runnable worker = new Runnable() {
public void run() {
doStep1();
doStep2();
doStep3();
...
}
};
executor.execute(worker);
}
executor.shutdown();
//server.js
我希望能够在客户端使用person对象,例如:
var person = {
name: George,
age: 32,
}
res.render('../views/person', person)
//client.js
有人可以帮忙吗?
谢谢!
答案 0 :(得分:1)
试试这个
res.render('../views/person', {person: person})
答案 1 :(得分:1)
如果您传递的不仅仅是一些对象,我建议您使用Express的路由(http://expressjs.com/en/guide/routing.html)围绕客户端 - 服务器关系构建某种API
// server
app.get('/person/a', function (req, res, next) {
console.log('the response will be sent by the next function ...');
next();
}, function (req, res) {
res.send({person: {age: 30, name: "Bob", greeting: "hello"}});
});
然后您的客户将使用http
模块(https://nodejs.org/api/http.html)调用这些路线:
// client
http.get({
hostname: 'localhost',
port: 80,
path: 'person/a',
}, (res) => {
// Do stuff with response
})
答案 2 :(得分:0)
您可以使用JSON.Stringify()和{{{}}}
传递数据有两个例子
return res.render('../views/person', {person : JSON.Stringify(person)});
var person = {{{person}}}
console.log(person)
hbs.hbs.registerHelper('convert', function (date) {
if (!date) {
return;
}
return JSON.stringify(date);
});
return res.render('../views/person', {person : person});
var person = {{{convert person}}}
console.log(person)
我建议2号。 它可以用于HTML以及客户端javascript。
答案 3 :(得分:0)
你在服务器中的路由可能是这样的
app.get("/",(req,res)=>{
res.render("view_name",{val: 123,val2: "123"});
});
然后在您的视图文件中,您可以执行以下操作:
<script>
console.log({{val}}); // if value it's number type
console.log("{{val2}}");//in quotes if it's string type
const val1 = {{val}};
const val2 = "{{val1}}";
<script/>