javascript - 在 Post 方法后重定向,expressjs

标签 javascript mysql node.js express

我正在学习 ExpressJS,到目前为止我完成了用户注册部分但是当我想在完成注册后重定向到主页时,它不是 单击提交按钮后显示 json。我可以知道我该怎么做吗?

数据库

 var mysql = require('mysql');

    var con = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "",
      database:'reciepeapp'
    });

    module.exports  = con
        the ORM



const con = require('./db')

ORM

        const orm = {

          insertOne: function (values, cb) {

     const sqlQuery = "INSERT INTO authentication(username,password)  VALUES ?";
        con.query(sqlQuery, [values],function (err, data) {
          if (err) {
            console.log(err)
            cb(err, null);
          } else {
            cb(null, data);
          }
      });
        },


        }
        module.exports = orm;

route.js

这里我将注册时获取的数据(register index html)插入到数据库中。它运行良好,但我想重定向到主页。

    const express = require('express');
            const app = express()
            const router = express.Router()
            const bcrypt = require('bcrypt');
            bodyParser = require('body-parser');
            app.use(bodyParser.urlencoded({ extended: true }));

            const orm = require('../models/orm')
            router.get('/',(req,res)=>
                res.render('home')
            )
            router.get('/login',(req,res)=>
                res.render('login')
            )
            router.get('/register',(req,res)=>
                res.render('register')
            )
           router.post("/register",  async (req, res) =>{
        try {
            const hashedPassword = await bcrypt.hash(req.body.password,10)
            values = { username: req.body.name,
                password:hashedPassword  } 


           orm.insertOne(values, function(error) {

               if (error) {
                   return res.status(401).json({
                       message: 'Not able to add'
                   });
               }
               values = { username: values.username,
                password: values.password } 


           orm.insertOne(values, function(error) {

               if (error) {
                   return res.status(401).json({
                       message: 'Not able to add'
                   });
               }
               **return res.send({
                   username: values.username,
                   password: values.password
               });**

           });

           });

        }

    catch {

    }
    });
        module.exports = router






     const express = require('express');
        const app = express()
        const bodyParser = require("body-parser");
        const indexRouter = require('./routes/route')
        const con = require('./models/db')
        con.connect(function(err) {
            if (err) {
              return console.error('error: ' + err.message);
            }

            console.log('Connected to the MySQL server.');
          });
          app.use(bodyParser.urlencoded({ extended: false }));
          app.use(bodyParser.json());
        var exphbs  = require('express-handlebars');
        console.log(__dirname)
        app.use('/',express.static(__dirname + '/public'));
        app.engine('handlebars', exphbs());
        app.set('view engine', 'handlebars');
        app.use('/',indexRouter)
        const PORT = 5000;
        app.listen(PORT,()=>console.log('it started on 5000'))

最佳答案

为此,您需要使用 express 的重定向方法。

例子:

var express = require('express');
var app = express();

const urlBase = 'localhost:3000/'

app.post('/', function(req, res) {
    const redirectUrl = "index.html"
    res.redirect(urlBase + redirectUrl);
});

app.listen(3000, function () {
    console.log('Example app listening on port 3000!');
});

文档:Express 4.x Docs

关于javascript - 在 Post 方法后重定向,expressjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58150138/

相关文章:

node.js - 单独运行 Mocha 测试

javascript - Vue Js仅间歇性地显示数据

MySQL条件可能吗?

PHP 表单选择正确填充 MySQL 值,而不是简单的 PHP echo

php - MySQL UPDATE 给出错误

javascript - Keen.io JS api 响应 {"code": "UnknownError"} when event created OK

node.js - 如何告诉 Azure Web App server.js 的位置

javascript - 哪些模式,大型原生构建应用程序的最佳实践

java - 对于移动平台浏览器来说,Java Applet 的替代品有哪些?混淆的 Javascript 安全吗?

javascript - 数组的总和,从数据库中获取数据