【发布时间】:2019-04-01 09:47:02
【问题描述】:
我是新手,正在尝试 AngularJS 和 NodeJS,我陷入了这个错误。
我正在尝试创建一个动态选择选项,我正在尝试使用 NodeJS 从 MySQL 数据库中回显一个表并将数据扔给 Angular。我已经尝试了很多东西来解决这个问题,但也许我仍然不太了解 Angular,所以我还没有解决这个问题。
我正在使用 nodeJS 版本。 1.0.0 和 AngularJS 版本 1.7.5。这是我的代码:
controlAll.js
var http = require('http');
var qs = require('querystring');
var fs = require('fs');
var hbs = require('hbs');
var express = require('express');
var bodyParser = require('body-parser');
var route = express();
var mysql = require('mysql');
var konek = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "mahasiswa",
});
konek.connect(function(err){
if(err) throw err;
console.log("udah konek");
});
route.set('view engine', 'hbs');
route.use(bodyParser.json());
route.use(bodyParser.urlencoded({ extended: true }));
route.get('/mahasiswa/add', function(req, res){
res.render("formm");
});
route.get('/jurusan', function(req,res){
konek.query("SELECT * FROM `jurusan`",function(err,jurusan)
{
if (err) throw err;
res.send(JSON.stringify({
jurusan:jurusan
}));
});
});
formm.hbs
<!DOCTYPE html>
<html>
<head>
<title>tambah mahasiswa</title>
<link rel="stylesheet" href="/asset/css/bootstrap.min.css">
<script src="/asset/js/bootstrap.min.js"></script>
<script type="text/javascript" src="/ang/angular.js"></script>
</head>
<body ng-app="coba">
<div class="container">
<form method="POST" action="/mahasiswa/add">
<div class="form-group">
<label>Nama Mahasiswa</label>
<input type="text" name="nama" placeholder="nama" class="form-control">
</div>
<div class="form-group">
<label>Nomor Pokok Mahasiswa</label>
<input type="text" name="npm" placeholder="npm" class="form-control">
</div>
<div ng-controller="drpdn">
<div class="form-group">
<label>Jurusan</label>
<select name="id_jurusan" ng-model="jurusan" class="form-control">
<option disabled selected value>--Pilih Jurusan--</option>
<option ng-repeat="jur in jurusan" value="{{jur.id_jurusan}}">{{jur.namajurusan}}</option>
</select>
</div>
<div class="form-group">
<label>Program Studi</label>
<select name="id_prodi" class="form-control">
<option disabled selected value>--Pilih Program Studi--</option>
</select>
</div>
</div>
<button type="submit" class="btn btn-primary">simpan</button>
</form>
</div>
</body>
</html>
<script type="text/javascript">
var app = angular.module('coba',[]);
app.controller('drpdn', function($scope, $http){
$http.get("/jurusan")
.then(function(response){
$scope.jurusan = response.jurusan;
});
console.log($scope.jurusan);
});
</script>
我的nodejs响应,我把数组放到另外一个路由:
console.log($scope.jurusan)
这是我的错误:
另一个错误:
【问题讨论】:
-
错误很清楚,
$scope.jurusan = jurusan;这里 jurusan 没有在你的代码中的任何地方定义。您是否期望jurusan成为来自服务器的一些价值? -
我期待
jurusan在 Angular 中将显示来自 nodeJS @PalSingh 中jurusan的数据 -
Angular(或前端)不知道您在 NodeJS(或服务器)中声明的任何内容,因此您需要使用 $http 从服务器获取数据并将其分配给 jurusan
-
所以我必须声明在 nodeJS 文件中获取
jurusan的路由? @PalSingh -
你能写下你的答案吗@PalSingh
标签: javascript mysql angularjs node.js