Set nodejs express response size - node.js

I have done this before somewhere but I can't find where anymore. My problem is, my response.send(myJSON) is too big (the myJSON is too big) so my content get cut off before it reaches the user. How can I set the response.send() to a bigger size or unlimited even?

you can use the npm package express-response-size to customize response of the server.

Related

Displaying device payload in node red

I ma new to Node-red and still finding my way around it. I am using SmartMesh network motes that communicate with a manager connected to my laptop.
How can I just display in the debug window the whole payload that is coming through in JSON format? Do I just use a debug node with msg.payload or I need to use a function node?
An help is very much appreciated!
Assuming the data you want is contained in the msg.payload field then a normal debug node should be fine.
If the data is else where in the msg object then you can change the debug node to show the whole message.
But be aware there is a limit to how much data will be shown in the debug sidebar in order to stop the debug node having too greater impact on performance. If the payload it too large it will be truncated. You can still see the whole output by changing the debug node to print to the console as well as the debug sidebar.
You can also change the limit (debugMaxLength) in the settings.js if you want to, but it is better to leave that value at it's default.

Has Yesod setMessage function a size limit?

I'm using Yesod and I'm experiencing a strange bug.
I'm uploading csv file and when the format is incorrect I display as a message (using setMessage) the uploaded file with some error message. When the file is too big, I don't get any message at all, as if I didn't set the message (or the message has been discarded).
I'm pretty sure the problem is on my side, but ss it possible that setMessage a size limit and discart too big message ? I guess setMessage uses session or something and it might have some restrictions .

Socket.io script size reduce

socket.io source script goes like 70k, a great part is comments, spaces...
I need to reduce that script to a smaller size
Some scripts do not even have spaces and the code is all toghether, this reduces the script original size.
Where is the location of the socket.io script so that I can remove comments and spaces?
Or is there a socket.io allready whithout comments and spaces with a smaller size?
There is a setting in the socket.io configuration for this:
https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO
browser client minification defaults to false
Does Socket.IO need to send a minified build of socket.io.js.
You may also enable gzip compression on the library.
The client .js file is in *yourdir*/node_modules/socket.io/node_modules/socket.io-client/dist
There is one file called socket.io.min.js which is minified already.
The OP fixed the problem by going to /node_modules/socket.io/lib and editing 'manager.js', to set both "minification" and "gzip compression" to "true". They had to do this way because because they were using nowJS which indirectly uses 'socket.io'
This reduced the file from 70k to about 4k!
it seems socket.io is either returning some other file or returning by building at run time.
I replaced socket.io.js by renaming the min one. cleared cache of browser but still getting the old file.

GPSD simple query's

I need some information from my GPSD server running on my NTP master server.
Amount of satellites it is seeing
Which satellites it is using for the positon fix (maybe also SNR)
Which satellites it is seeing since there are a lott of them (is this possible?)
I am going to output this to PHP, so it must be simple
The GPSD source contains the file gpsd.php which can deliver the current position and satellite info ("skyview") either as a finished HTML page or as a JSON string. So you need to make sure a web server with PHP support runs on your master server and you can call http://ntp-server/path/to/gpsd.php to get it. Append ?op=json to the URL to return the JSON result.
You can get just the php file here: https://github.com/yazug/gpsd/raw/master/gpsd.php
Beat Bolli: I think you meant this one: https://github.com/yazug/gpsd/raw/master/gpsd.php.in (they have renamed it)
It suggests to use ?poll; function, but it hangs to me when I try to read the response...

How to disable "header already sent" message on linux, cpanel?

I building my sites on the localhost (runs wamp on windows), and when I upload it to my server, I always get
"Cannot modify header information - headers already sent"
I understand that there shouldn't be any blank lines and everyhing, and usually this works out. but now I need to redirect someone after the header has been sent, how can I make my server act like my localhost ?
i'm using cpanel and WHM:
cPanel 11.25.0-R42399 - WHM 11.25.0 - X 3.9
CENTOS 5.4 x86_64 virtuozzo on vps
I will appreciate any help
In short, you need to prevent PHP from outputting anything to the browser before you get to the point where you want to use the header() function.
This should be done by careful programming practices, of which your 'no blank lines' is one, or by storing PHP's output in an output buffer, and only outputting when you're ready for it.
See the ob_start() and ob_flush() methods. You use ob_start() at the start of your application. This disables output and stores it into a buffer. When you're ready to start outputting, use ob_flush() and PHP will send the buffer's contents to the browser, including the headers that are set till that point. If you don't call ob_flush() then the buffer is output (flushed) at the end of the script.
The reason why it works on your WAMP development environment is most likely that output buffering is already enable by default in the php.ini. Quite often these all-in-one packages enable a default buffer for the first 4k bytes or so. However, it is generally better to explicitly start and flush the buffer in your code, since that forces better coding practices.
Well,
I guess by more thinking and better programing you can manage to keep all redirects before any HTML is written.
This problem solved by the old rules...
#user31279: The quickest and dirtiest way I know of is to use # to suppress the warning, so e.g.
#header('Location: some-other-page.php');

Resources