app.jsで定義されている変数を、内部のスクリプトタグとejsファイルに渡そうとしています。このような短いルックスで のでapp.js:app.jsからejsファイルへの変数のスクリプトタグへの受け渡し
//app.js
var express = require("express")
var app = express()
var request = require("request")
var thelist =[]
app.locals.myVar = thelist.length;
app.get("/", function(req, res){
res.render("search")
})
app.get("/show/:id", function (req, res) {
var id = req.params.id;
thelist.push(id)
console.log(thelist);
res.redirect('/')
});
私が渡したい変数app.locals.myVar、acutallyこの方法doesntの仕事とされ、私はまだそのmyVarにはEJSファイルで定義されていません取得
EJSファイルはここにある:
//search.ejs
<html>
<head>
<title>MYMDB</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.13/semantic.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/app.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.13/semantic.min.js"></script>
</head>
<body>
<a id="show-data" href="/data" class="ui right floated disabled button">
See the table
</a>
<script>
$('#run').click(function() {
$('#show-data').removeClass('ui disabled button');
$('#show-data').addClass('ui loading button');
setTimeout(function() {
$('#show-data').removeClass("ui loading button");
$('#show-data').addClass('ui basic button')
}, myVar*2000);
});
</script>
</body>
</html>
あなたはサーバー側のJSに得られ、その後、クライアント側のJSでそれを使用しているmyVar-変数を使用しようとイムを見ることができるように。しかし、ejsファイルでは認識されないようです。
'res.render()'がパラメータ化されています。それで、 'res.render(" search "、{some:" var "});' – zero298