每当我尝试访问我的 /products/addproduct 时,无论我是使用 addproduct.ejs 中的按钮访问路由还是正常访问,它总是显示无法获取 /products/addproduct。
我的文件结构
索引js
路线
----产品js
意见
----addproduct ejs
----索引ejs
----登录ejs
index.js
const http = require('http')
const https = require('https')
const express = require('express')
const mysql = require('mysql')
const ejs = require('ejs')
const session = require('express-session')
const cookieparser = require('cookie-parser')
const products = require('./routes/products')
const { isBuffer } = require('util')
const app = express()
app.use(express.static('public'))
app.use(express.urlencoded({ extended: true }))
app.use(express.json())
app.use(cookieparser())
app.use(session({
secret: 'secret',
saveUninitialized: false,
resave: false
}))
app.use('products', products)
app.set('view engine', 'ejs')
const db = mysql.createConnection({
host: "localhost",
user: "root",
passowrd: "",
database: "info"
})
db.connect((err) => {
if(err)
console.log(err)
})
app.get('/', (req, res) => {
if(req.session.loggedin === "true")
res.render('index')
else
res.redirect("/login")
})
app.get('/login', (req, res) => {
if(req.session.loggedin === "true")
res.redirect('/')
else
res.render('login', {exists: ''})
})
app.post('/login', (req, res) => {
const email = req.body.email
const password = req.body.password
const sql = "SELECT * FROM users WHERE email = ? and password = ?"
db.query(sql, [email, password], (err, result) => {
if(err) {
return console.log(err)
}
if(result.length > 0) {
req.session.loggedin = "true"
res.redirect('/')
}
else {
res.render('login', {exists: 'wrong email or password'})
}
})
})
app.listen(3000, (err) => {
if(err) console.log(err)
})
products.js
const express = require('express')
const router = express.Router()
router.get('/addproduct', (req, res) => {
res.render('addproduct')
})
module.exports = router
addproducts.ejs
<!DOCTYPE html>
<html>
<head>
<title> Title </title>
</head>
<body>
<form action="addproduct" method="POST">
<input name="name" type="text" placeholder="Product Name">
<br>
<input name="desc" type="text" placeholder="Description">
<br>
<label> Category </label>
<select name="category">
<option value = "electronics">electronics</option>
<option value = "sports">sports</option>
<option value = "fashion">fashion</option>
</select>
<input name="price" type="number" placeholder="price">
</form>
</body>
</html>
登录.ejs
<!DOCTYPE html>
<html>
<head>
<title> Title </title>
</head>
<body>
<form action="/login" method="POST">
<input type="email" name="email" placeholder="email" required>
<br>
<input type="password" name="password" placeholder="password" required>
<br>
<button type="submit"> Submit </button>
<span> <%= exists %> </span>
</form>
</body>
</html>
index.ejs
<!DOCTYPE html>
<html>
<head>
<title> Title </title>
</head>
<body>
<h1> Home Page </h1>
<a href="/products/addproduct"> Add a product </a>
</body>
</html>