res.render() 未呈现 ejs 文件,未抛出错误 node.js 应用程序
res.render() not rendering ejs file, no error thrown node.js app
我正在尝试发送一个 ejs 模板文件作为对 HTTP 请求的响应; html 和 css 呈现但 Javascript 没有响应。 Javascript 源链接在 ejs 响应的头部,但实际显示页面时不会调用这些函数。
app.js
const express = require('express')
const app = express()
let port = process.env.PORT || 3000
require('dotenv').config()
const { auth,requiresAuth } = require('express-openid-connect')
const path = require('path')
let mysql = require('mysql')
const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
app.set("views", path.join(__dirname, "views"))
app.set("view engine", "ejs")
app.use(express.static(__dirname))
app.set('port',port)
app.get('/createnew', requiresAuth(), function (req, res) {
let user = (JSON.stringify(req.oidc.user.email))
user = user.replace(/"/g, '\'');
let user1 = {
completeremail: user,
}
res.render('newform', {user : user1})
})
请求来自profilelist.ejs
function createNew() {
let getUrl = window.location;
let baseUrl = getUrl .protocol + "//" + getUrl.host;
let query = baseUrl + '/createnew?'
let req = new XMLHttpRequest()
req.open("GET", query, true)
req.addEventListener('load', function () {
let response = req.responseText
document.querySelector("html").innerHTML = response
})
req.send()
}
我的文件结构是:
node_modules/
views/
complete.ejs
form.ejs
maintemplate.ejs
newform.ejs
profilelist.ejs
.env
.gitignore
app.js
javascript.js
packahe.json
package-lock.json
README.md
stylesheet.css
问题是因为你用空参数调用了你的中间件函数 requiresAuth
意味着你的中间件不会调用 next()
将控制权传递给呈现你的 ejs 模板的下一个函数,尝试在没有 ()
的情况下调用你的中间件
app.get('/createnew', requiresAuth , function (req, res) {
//your code here
})
我正在尝试发送一个 ejs 模板文件作为对 HTTP 请求的响应; html 和 css 呈现但 Javascript 没有响应。 Javascript 源链接在 ejs 响应的头部,但实际显示页面时不会调用这些函数。
app.js
const express = require('express')
const app = express()
let port = process.env.PORT || 3000
require('dotenv').config()
const { auth,requiresAuth } = require('express-openid-connect')
const path = require('path')
let mysql = require('mysql')
const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
app.set("views", path.join(__dirname, "views"))
app.set("view engine", "ejs")
app.use(express.static(__dirname))
app.set('port',port)
app.get('/createnew', requiresAuth(), function (req, res) {
let user = (JSON.stringify(req.oidc.user.email))
user = user.replace(/"/g, '\'');
let user1 = {
completeremail: user,
}
res.render('newform', {user : user1})
})
请求来自profilelist.ejs
function createNew() {
let getUrl = window.location;
let baseUrl = getUrl .protocol + "//" + getUrl.host;
let query = baseUrl + '/createnew?'
let req = new XMLHttpRequest()
req.open("GET", query, true)
req.addEventListener('load', function () {
let response = req.responseText
document.querySelector("html").innerHTML = response
})
req.send()
}
我的文件结构是:
node_modules/
views/
complete.ejs
form.ejs
maintemplate.ejs
newform.ejs
profilelist.ejs
.env
.gitignore
app.js
javascript.js
packahe.json
package-lock.json
README.md
stylesheet.css
问题是因为你用空参数调用了你的中间件函数 requiresAuth
意味着你的中间件不会调用 next()
将控制权传递给呈现你的 ejs 模板的下一个函数,尝试在没有 ()
app.get('/createnew', requiresAuth , function (req, res) {
//your code here
})