对于javascript,快递,节点,ejs等,我是绝对的初学者,请对我轻松一点。:D
我正在创建一个网站,这是一个画廊的我的项目。您可以看到它们的网格,只需单击gif就可以查看实时版本。每个项目(两个迷你游戏),当点击时,会转到不同的路径(/squareTap,/guessColor)。现在我想在网站上实现不同的语言。我添加了引导下拉列表,您可以使用它选择所需的语言。它适用于主页,可以很好地修改文本。但当你去任何项目时,这些信息就会丢失.我需要它来让游戏知道它应该在哪种语言中显示癫痫警告,并相应地改变游戏描述。
这就是网站的结构:使用“节点app.js”运行;每个ejs文件都有相应的js和css文件。
//app.js require('dotenv').config(); const express = require('express'), app = express(), bodyParser = require('body-parser'), https = require('https'), http = require('http'), fs = require('fs'); var setToEnglish = false; // app.locals.setToEnglish = false; app.use(bodyParser.urlencoded({extended: true})); app.use(express.static(__dirname + '/views')); app.use('/node_modules', express.static(__dirname + '/node_modules/')); app.use('/sounds', express.static(__dirname + '/sounds/')); app.use('/images', express.static(__dirname + '/images/')); app.set('view engine', 'ejs'); const options = { key: fs.readFileSync('key.pem'), cert: fs.readFileSync('cert.pem') app.get("/", function(req, res){ res.render("main", { setToEnglish : setToEnglish}); app.get("/squareTap", function(req, res){ res.render("squareTap", { setToEnglish : setToEnglish}); app.get("/guessColor", function(req, res){ res.render("guessColor", { setToEnglish : setToEnglish}); https.createServer(options, app) .listen(process.env.HTTPS_PORT, function () { console.log('Serving the https'); http.createServer(function (req, res) { res.writeHead(301, { 'Location': 'https://www.' + process.env.DOMAIN}); res.end(); }).listen(process.env.HTTP_PORT);
我尝试了ejs全局变量(如果是这样的话)。基本上,我在app.js中创建了一个变量app.js,将它传递给每个视图( ejs文件),无法知道如何将它传递给js文件,所以我在ejs文件中做了一个函数声明,并在每次用户单击下拉选项更改语言时执行这些声明。
<script> function setGlobalToEnglish() { <% setToEnglish=true %>; function setGlobalToPolish() { <% setToEnglish=false %>;