通过readStream将数组的值与javascript文件一起发送到客户端
Sending value of an array to client alongside javascript file via readStream?
我有一个node.js服务器,它使用节点mysql提取数据并将其保存到一个名为FRUITS的数组中。
我需要使用"readStream"将此数组(FRUITS)的值与发送到客户端的javascript文件一起传输。。
有什么想法吗?下方的代码
nodeController.js
function sendJSfile(req, res) {
seed_id = "valid_fruits"
var mysql = require('mysql');
var end;
var connection = mysql.createConnection({
host: 'myhost',
user: 'username',
password: 'password',
database: 'databasename'
});
connection.connect()
connection.query({
sql: 'SELECT fruit_type FROM fruit_table WHERE seed_id = ? LIMIT 0, 10',
timeout: 4000,
values: [seedid]
}, function (err, result, fields) {
var FRUITS = [];
for (var i = 0; i < result.length; i++) {
var obj = result[i]
FRUITS.push(obj.fruit_type)
}
})
res.writeHead(200, { "Content-Type": "text/javascript" });
var readStream = fs.createReadStream("./fruits.js")
readStream.on('open', function () {
readStream.pipe(res);
});
readStream.on('error', function (err) {
res.end(err);
})
Client.js
// I use a post request because I need to send data to the server then receive the javascript file back via readStream
request("myserver", "post", { apples })
.done(function (res) {
})
})
function request(url, method, data) {
return $.ajax({
url: url,
method: method,
data: data
})
}
这将把水果数组作为JSON附加到js文件并流式传输:
connection.query({
sql: 'SELECT fruit_type FROM fruit_table WHERE seed_id = ? LIMIT 0, 10',
timeout: 4000,
values: [seedid]
}, function(err, result, fields) {
var FRUITS = [];
for(var i = 0; i < result.length; i++) {
var obj = result[i]
FRUITS.push(obj.fruit_type);
}
var fileVar = 'var FRUITS = '+JSON.stringify(FRUITS)+';';
fs.appendFile('./fruits.js', fileVar, function(err) {
res.writeHead(200, {
"Content-Type": "text/javascript"
});
var readStream = fs.createReadStream("./fruits.js")
readStream.on('open', function() {
readStream.pipe(res);
});
readStream.on('error', function(err) {
res.end(err);
})
});
});
通过这种方式,您将把这个var FRUITS = ["apple","banana"];
附加到fruits.js
,这样,如果使用fruits.js
作为脚本,您就可以使用FRUITS
作为变量。
相关文章:
- 将webpack和babel与父项目目录中的文件一起使用
- 为什么不't我的ruby代码与javascript文件一起插入
- 将HTML文件中的变量与外部JS文件一起使用
- 安全地包装JS文件,这样当它们连接在一起时,它们仍然可以工作
- 如何将遗留的js文件与webpack捆绑在一起
- 在使用 Django 静态文件时动态设置映像时,只有绝对路径才能与 jquery 一起使用
- 将本地文件与媒体源一起使用
- 我想通过单击按钮将 2 个 php 文件链接在一起
- 为什么我的css文件不能与MCV项目一起使用
- 我可以把所有的javascript.js文件捆绑在一起吗
- 使用Realm React Native查找Realm文件的路径,以便与Realm Browser一起使用
- 如何使用内容脚本将另一个html连同css文件一起注入到html中
- PHP,X-SendFile:将文件与输出文本一起发送到浏览器(通过echo)
- 如何用JavaScript中的Ajax调用代替加载脚本文件(将YQL与JavaScript一起使用)
- Twitter Bootstrap js文件已加载,但无法与requirejs一起使用
- 如何将javascript文件与ng-include模板一起加载
- 如何在 AngularJS 中与其他参数一起上传 http.post 的图像文件
- JavaScript 文件哈希值与文件的一部分一起生成
- 将每个函数与 getJSON 一起使用一个内部文件
- JavaScript 文件换行符与 PHP 一起使用