【发布时间】:2018-03-05 15:58:30
【问题描述】:
这是我的 Angular 控制器和我的帖子请求:
$http.post('/formDevis', $scope.formData).then(function(response) {
if (response.data) {
$('#successModal').modal();
console.log(response);
}
}, function(response) {
$('#errorModal').modal();
});
这是我的文件“server.js”和我的快速配置:
var express = require('express');
var path = require('path');
var nodeMailer = require('nodemailer');
var bodyParser = require('body-parser');
var app = express();
var port = 3000;
app.use(express.static(path.join(__dirname, 'public')));
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.post('/formDevis', function(req, res) {
const devis = req.body;
res.send('it work');
});
好的,如果我这样做了,我会收到回复,并且我的表格也会发布。 问题在于我的应用程序中的几个网址。如果我直接在浏览器中输入,我无法访问我的网址。示例:如果我输入“my.com/users”,它会抛出一个错误。
我有一个文件“routes.js”,其中包含使用 uiRouter 的所有路由。而且我想,可能我必须将该文件与我的快速配置连接起来吗?
我尝试添加这个:
app.use(function(req, res) {
res.sendFile(__dirname + '/public/index.html');
});
然后,我所有的路线都工作了,我可以直接在浏览器中访问它们。但另一方面,我的发布请求不再有效。 作为回应,它会向我发送我的 index.html 文件。
我尝试了几件事,但都没有奏效。我是新来表达的,如果我的问题很愚蠢,很抱歉。可能是我错过了一些明显的东西! 感谢您的帮助
【问题讨论】:
-
您不能从浏览器发送 post 请求,因为浏览器发送请求是为了向服务器发送请求。访问静态文件使用 express.static。
app.use('/', express.static('public')) -
如果您想让人们更容易提供帮助,请提出一个更好的问题。这个问题对我来说不清楚:)
-
@thomann061 对不起,如果我不清楚。使用我的实际代码,我可以使用 express(和 nodemailer)将表单发送到电子邮件地址,但我的路线有问题。如果我直接在浏览器中输入我的 url,比如 'myapp.com/user' ,我无法获取我的页面。我添加了我在帖子底部记下的代码行,然后,我的 url 工作正常,但我打破了我对表单的帖子请求。 (对不起我的英语!我希望它更清楚,我不确定)
标签: angularjs express post routes