这是一个非常直截了当的问题,但我在谷歌上找不到任何东西.我正在寻找有关Node.js的创建服务器函数中的请求参数的文档,但我找不到任何东西.
http.createServer(function(request, response){
console.log(JSON.stringify(request));
});
Run Code Online (Sandbox Code Playgroud)
使用JSON.stringify()进行调试会给出一个错误,即对象是循环的并且程序停止.我见过不同的东西request.url,或者request.body,是否有一个记录所有请求函数和参数的页面?它似乎很容易找到,我似乎无法找到它.
我再次尝试了,结果只是console.log(request)写出了请求中的所有数据.这里仅作为参考:
ondata: [Function],
_httpMessage:
{ domain: null,
_events: [Object],
_maxListeners: 10,
output: [],
outputEncodings: [],
writable: true,
_last: false,
chunkedEncoding: false,
shouldKeepAlive: true,
useChunkedEncodingByDefault: true,
sendDate: true,
_hasBody: true,
_trailer: '',
finished: false,
_hangupClose: false,
socket: [Circular],
connection: [Circular] } },
connection:
{ _connecting: false,
_handle:
{ fd: null,
writeQueueSize: 0,
owner: [Circular],
onread: [Function: onread],
reading: true },
_readableState:
{ highWaterMark: 16384,
buffer: [],
length: 0,
pipes: …Run Code Online (Sandbox Code Playgroud) 我在php中编写一个函数,客户端我有一个画布图像,我使用toDataUrl()和文件名将图像保存在服务器上.这是代码:
<?php
$imageData=$GLOBALS['HTTP_RAW_POST_DATA'];
$data = json_decode($imageData, true);
$file = $data["file"];
$image = $data["data"];
$filteredData=substr($image, strpos($image, ",")+1);
$unencodedData=base64_decode($filteredData);
$fp = fopen( 'image/' . $file , 'wb' );
fwrite( $fp, $unencodedData);
fclose( $fp );
?>
Run Code Online (Sandbox Code Playgroud)
问题在于此代码有效.对于我使用它的三个页面中的两个,它工作得很好.问题是当我第三次复制并粘贴它以再次实现它时,由于某种原因,文件是在服务器上创建的,除了没有数据写入文件.我不认为这是客户端的问题,因为我在javascript中编写调试警报消息并在PHP中调试回调,并且两者都能够打印出数据.我做了这个简短的调试文件:
<?php
$fp = fopen('data.txt', 'wb');
if(is_writable('data.txt')){
echo "file is writable<br>";
}
if(fwrite($fp, 'test') == FALSE){
echo "failed to write data<br>";
}
fclose($fp);
?>
Run Code Online (Sandbox Code Playgroud)
输出是
file is writable
failed to write data
Run Code Online (Sandbox Code Playgroud)
我尝试使用chmod并设置所有内容,文件夹,文本文件,然后写入0777,我仍然得到相同的结果; 制作文件但没有数据写入其中.我有什么遗漏或任何其他可能有帮助的方法.我没有在谷歌上找到任何东西,我仍然感到困惑,为什么相同的代码完全按预期两次突然停止没有明显的原因.
提前致谢.