- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个将数据传递到注册路径的注册表单。但是,我无法在注册路径中检索表单输入。请建议如何检索 api.js 文件中的表单数据。我尝试使用 POSTMAN 将数据发送到/api/registration 端点,这确实在数据库中创建了一个用户。当我真正使用html表单注册时,它失败了。
HTML
<!DOCTYPE html>
<html>
<body>
<form action="/api/register" enctype="multipart/form-data" method="post">
<input name="email" type="text" placeholder="Email">
<input name="password" type="password" placeholder="Password">
<input name="passwordConf" type="password" placeholder="Confirm Password">
<input type="submit" value="Register">
</form>
</body>
</html>
Index.js
//----setting up modules
const express = require('express');
const hbs = require('hbs');
const path = require('path');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost/test');
//----define port connection on various environmentls
const port = process.env.PORT || 3000;
//----createing express app
var app = express();
// parse incoming requests
app.use(bodyParser.json());
//----use express middle-ware to utitlize public folder
// app.use(express.static(__dirname + 'public'));
app.use('/public', express.static(path.join(__dirname,'public')));
//see the first argument in above line it assigns which directory path is used to access the public file through URL
//----initializing handlebars as express view engine
app.set('view engine', 'hbs');
//----define handlebars partials and helpers
hbs.registerPartials(__dirname + '/views/partials');
//----define helper to get current year
hbs.registerHelper('getDate', ()=>{
return new Date().getFullYear();
});
//----define routes
app.get('/', function (req, res) {
res.render('home.hbs')
})
// include routes
app.use('/api', require('./routes/api'));
app.use('/', require('./routes/page'));
//----connecting to port
app.listen(port,()=>{
console.log(`success connection to port ${port}`);
})
Api.js 路由
var express = require('express');
var router = express.Router();
var {User} = require('./../models/user');
var {authenticate} = require('./../middleware/authenticate');
var _ = require('lodash');
var bodyParser = require('body-parser');
var jsonParser = bodyParser.json()
var urlencodedParser = bodyParser.urlencoded({ extended: false })
router.post('/register',function (req, res) {
console.log(req.body);
});
module.exports = router;
pages.js
var express = require('express');
var router = express.Router();
router.get('/register', function (req, res) {
res.render('register.hbs', {title:"REGISTER"} )
})
router.get('/login', function (req, res) {
res.render('login.hbs', {title:"LOGIN"} )
})
module.exports = router;
最佳答案
这是我的建议:
创建一个名为 routes.js 的文件并在其中包含所有路由并导入它。
var express = require('express');
var router = express.Router();
app.get('/', function (req, res) {
res.render('home.hbs')
})
router.get('/api/register', function (req, res) {
res.render('register.hbs', {title:"REGISTER"} )
})
router.post('/api/register',function (req, res) {
//do your post logic here
console.log(req.body);
});
router.get('/login', function (req, res) {
res.render('login.hbs', {title:"LOGIN"} )
})
module.exports = router;
在你的 Index.js 中:
//Make sure the route is correct
app.use('/', require('/routes/routes.js'));
这样做,我希望错误得到解决,祝你好运!
关于javascript - 使用 bodyParser 和 Router() 无法检索表单输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49973182/
const bp = require("body-parser"); const express = require("express"); const app = express(); app.us
我想实现一个解析和验证 request.body 的 BodyParser,它基于 parse.json,目前看起来像这样: def parseModel[A](implicit reads: Rea
我正在使用 cURL 发送 POST 请求: curl http://tarvos.local:8080/partial_Users/2 -d '{currentPage : 1, firstID :
抱歉,如果这个问题听起来“简单”,但我无法让 body-parser 处理这个非常简单的示例: "use strict"; const PORT = 3000; const express = req
我正在构建一个 NextJS React 应用程序。 在我的 server/index.tsx 中,我得到: import next from 'next'; import express from
如图所示,BodyParser 现在已被弃用,如何更正 bodyParser 语法或语句以去除换行符? 最佳答案 如果您使用的是 Express 4.16+,则不必导入 body-parser了。你可
这个问题与 How to disable Express BodyParser for file uploads (Node.js) 非常相似。他们提供的答案是针对 Express3 的,我已经尝试过
我正在尝试使用 postman 发送一个 post 方法来接收一些示例参数。但是,我的示例代码无法识别 req.body,因此它始终为空。 这是我的示例代码: const express = requ
我有一个我无法弄清楚的 bodyparser 问题。 几周前,我使用 Express 创建了一个 REST API,并使用 bodyParser 从客户端读取 JSON 数据。一切正常,但今天早上我尝
我有一个 server.js 文件,其中有一个训练器路线 它用于在express中创建一些路由,但是每当我运行该程序时,它都会给我一个类型错误 firstName: req.body.firstNam
我是 node.js 的新手。我试图在连接模块中使用 bodyParser,但错误消息显示 TypeError: connect.bodyParser is not a function。我的代码(简
我刚刚开始学习 Nodejs + Express + Handbars,我的帖子遇到了困难。这是我收到的请求正文,我似乎无法使用 req.body.province 和 req.body.munici
我正在学习如何设置 node.js 服务器和 mongoDB 数据库的教程。我现在需要启动 npm,但这是它返回的错误 C:\Users\Jay\IdeaProjects\nodetest1>npm
我对 Node.js 和 Express 有很大的疑问。 我想使用我请求的正文元素,但我不知道如何在我的程序中使用 bodyParser();它不仅仅是 app.use()... 自己看看: requ
我正在使用连接表单 上传图片。但是如果我使用 bodyParser() 它就不起作用了。反之,如果我不使用 bodyParser,我就不能上传文件吗? 如何让他们一起玩?这是我的配置: app.con
我总是看到 bodyParser用于让您访问已发布的表单内容。通过使其在 req.body 中可访问。但是,如果您不想使用 bodyParser,您将如何访问该数据? 相关/类似问题 - bodyPa
所以,我正在开发这个快速应用程序,其中所有路线的主体大小都受到限制,除非您是管理员,因为管理员需要对多条路线无限的主体大小。我有 limitBodySize 中间件,并且像这样使用它: app.use
大家好,我是 Node.js 和 Express 的新手。我只是在尝试各种教程中的各种 Node.js 代码。 根据 npm 官方网站,使用 methodOverride 的正确语法是 // Be s
我正在使用一个简单的 html 表单,尝试解析表单数据。不幸的是,我的路线部分仅从我的表单元素返回未定义 我的app.js var express = require('express'); var
我是 NodeJS 新手。我正在尝试将不同的中间件与连接中间件一起使用。 这是我的代码: var connect = require('connect'); var bodyParser = requ
我是一名优秀的程序员,十分优秀!