【问题标题】:When i call the ajax in node.js as a return undefined当我在 node.js 中调用 ajax 作为返回未定义
【发布时间】:2014-04-22 16:27:04
【问题描述】:

我的 node.js 代码

index.js

var mysql = require('mysql');
var fs = require('fs');
var ejs = require('ejs');
var client = mysql.createConnection({
    user : 'root',
    password : '1234',
    database : 'company'
});
exports.index = function(req, res) {
fs.readFile('views/index.html','utf-8',function(error,data){
    client.query('select * from spa',function(error,result){
        if(error){
            console.log('error:'+error);
        }else{
            res.send(ejs.render(data,{
                title:'Express',
                result:result
            }));
        }//end else
    });//end query
});//end fs
};

我的 index.html 代码

 <script>
$(document).ready(function() {
    function listView() {
        $('#output').empty();
        $.ajax({
            url : '/',
            type : 'GET',
            success : function(result) {
                alert('success');
                alert(typeof (result));
                $(result).each(function(index, item) {
                    var output = '';
                    output += '<tr>';
                    output += '<td>' + item.file_no + '</td>';
                    output += '<td>' + item.file_name + '</td>';
                    output += '<td>' + item.file_content + '</td>';
                    output += '<td>' + item.file_model + '</td>';
                    output += '</tr>';
                    $('#output').append(output);
                });//end each
            }//end success
        });//end ajax
    }//end listView();
   });//end document
 </script>

<table id="output"></table>

当我运行代码直到成功执行良好。 alert('success') -> 成功了!

alert(typeof(result))->string >工作!但是所有未定义数据的表。

我不知道情况..请帮助我..

【问题讨论】:

    标签: javascript jquery ajax node.js


    【解决方案1】:

    假设您只想遍历结果对象,而不是这样:

    $(result).each(function(index, item) {
    

    我想你可能想要:

    $.each(result, function(index, item) {
    

    如果这仍然不能让你到达你想要的地方,那么添加一个

    console.log(result);
    

    准确检查 ajax 调用的结果是什么,并确保您拥有您所期望的数据,并且您正在迭代它的正确部分。

    【讨论】:

    • 而且,如果您像我建议的那样执行console.log(result),您会看到它是一个字符串,而不是一个 javascript 对象。这是基本且简单的调试。值得学习如何自己研究这些事情。
    【解决方案2】:

    你说typeof (result) 是string,希望是JSON。但是如果想遍历它,那么你必须解析为javascript数组

    var resultArray = JSON.parse(result);
    

    然后遍历一个数组

    $.each(resultArray, function(index, item) {
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多