我是新手。我无法将数据从前端插入到mysql数据库中。 我在插入时遇到了问题。我无法追踪我的编码错误,无论是在 controller.js 还是在 index.html 或 server.js 中。 请帮我解决这个问题。
我的server.js代码
var express = require("express");
var app = express();
var bodyParser = require('body-parser');
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'bookitnow'
});
connection.connect(function(err) {
if (!err)
console.log('Database is connected');
else
console.log('DB connection error.');
});
app.use(express.static(__dirname + '/public'));
app.get('/index.html', function(req, res){
res.sendFile(__dirname + '/public' + 'index.html');
});
app.post('/index.html', function(req, res, next) {
var data = req.body;
console.log('request received:', data);
connection.query('INSERT INTO register SET ?', data, function(err,res){
if(err) throw err;
console.log('record inserted');
});
app.listen(5500);
console.log('Hi from server.js');
my controller.js code
var app = angular.module('bookitnow',[]);
app.controller('myCtrl', function($scope,$http){
$scope.submit = function() {
var data = {
fName : $scope.fname,
lName : $scope.lname,
email : $scope.email,
phone : $scope.phone,
password: $scope.pswd,
confirm : $scope.confirm
}
};
$http.post('/index.html', &scope.data)
.success(function (data, status, headers, config) {
$scope.result = data;
console.log("inserted successfully")
})
.error(function(data, status, header, config){
$scope.result = "Data: " + status;
});
$scope.add.push(data);
$scope.addNewUser = {
fname:"",
lname:"",
email:"",
phone:"",
password:"",
confirm:""
};
});
我的index.html代码
<html ng-app="bookitnow">
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="./css/style.css">
<title> Registration Page </title>
</head>
<body>
<div class="container" ng-app="bookitnow" ng-controller="myCtrl">
<h1>Register</h1>
<form method="post">
<div class="form-group">
<input type="text" class="form-control" id="firstName" ng-model="fname" placeholder="First Name" required>
</div>
<div class="form-group">
<input type="text" class="form-control" id="lastName" ng-model="lname" placeholder="Last Name" required>
</div>
<div class="form-group">
<input type="email" class="form-control" id="email" ng-model="email" placeholder="Email Address" required>
</div>
<div class="form-group">
<input type="text" class="form-control" id="phone" ng-model="phone" placeholder="Phone" required>
</div>
<div class="form-group">
<input type="password" class="form-control" id="pswd" ng-model="pswd" placeholder="Password" required>
</div>
<div class="form-group">
<input type="password" class="form-control" id="confirm" ng-model="confirm" placeholder="Confirm Password" required>
</div>
<button type="submit" class="btn btn-info" ng-click="submit()">Submit</button>
</form>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<script src="controllers/controller.js"></script>
</body>
</html>
答案 0 :(得分:1)
你的路线不合适。
这不是有效路线
app.get('/index.html')
像这样更改你在服务器端的所有路由
app.get('/', function(req, res) {//remove index.html
res.sendFile(__dirname + '/public' + 'index.html');
});
app.post('/', function(req, res, next) {//remove index.html
var data = req.body;
console.log('request received:', data);
connection.query('INSERT INTO register SET ?', data, function(err, res) {
if (err) throw err;
console.log('record inserted');
});
请客户方提出这样的要求
$http.post('/', $scope.data)
.success(function(data, status, headers, config) {
$scope.result = data;
console.log("inserted successfully")
})
.error(function(data, status, header, config) {
$scope.result = "Data: " + status;
});
希望这对你有用