hadn't thought of multiple network cards, and of multiple ip address's.

your last bit of two-line code  has forced me think again. I'm assuming the ip address would be from the actual network address that the call to the server is made from. so I would be putting, what should be "common" files into two separate directories if use the ipAddress.

many thanks.

I apologise,

I am so used to using #define, I totally missed the #def1arg

so, now I change it to this, It works fine.I hadn't come across this #def1arg before.
Its an interesting use and I can think of quite a few ways already where I can create more macros to make use of it.



that doesn't seem to work Eduard.

here's my macro (according to you)

#define testEmptyParams(%args)    i $listfind($listbuild("%args"),"")>0 $$$quitMissingParams
here's the call


when I compile that, I get

"Too many arguments to macro: 'testEmptyParams'"

I've tried removing the quotes inside the macro and it still says too many arguments.

so I want to do a nested $lb, and then quit with another macro $$$quitMissingParams.

because I'm testing for empty parameters, I never know how many params I want to pass in.


s a="1",b="2" i $listfind($listbuild(a,b),"")>0 w " - missing"

s a="",b="2" i $listfind($listbuild(a,b),"")>0 w " - missing"

s a="",b="2",c=3 i $listfind($listbuild(a,b,c),"")>0 w " - missing"

s a="1",b="2",c=3 i $listfind($listbuild(a,b,c),"")>0 w " - missing"

Am I missing something ?

remember that my "bry" code was in addition to the code that already exists, so my settings now read "cukbry"



so, I'm assuming this is on section 20 (and others) of your QEWDjs training material whereby the global's contains the structure you want in JSON. and then using DocumentNode to get at the data inside javascript

a couple of questions, 

  • In Cache, we would normally use $J in the global to keep it unique to the user, but we're using worker processes, so how do we keep the equivalent of $j in QEWDjs ? (I'm going to be using JWT's if that makes any difference)
  • if I have synchronous API's happening at the same time (say 5 workers running), I'm assuming that we somehow need to keep track of what global node belongs to which API, so is it the "worker process ID" we use? - is it that simple?
  • if we do the equivalent of the $J, how do you clear down  (everything) ? in EWD, you kept session values, and when the session died/expired, then the sessions were cleared. I know that we should use the  DocumentNode object's delete() method, but is there any catch-all if anything happens




like everything else, until I come across something that doesn't convert, I'll start with this version


thanks for the updates and clues

I'm about to update to the very latest cache this weekend, and have had a special Cache build that allows us to use NodeJS version 8.

There's lots of existing  cache classes to do the fetching, filing as we had an old concept that uses simple CSV files to an external third party server, but now it's all coming in house (with associated short timescales of course) and I now need to hook into all these new realtime restAPI's to do the work.

I've been using EWD since it's first incarnation, and the new QEWDjs just makes life easy.

I'd be interested in the new upgrade when it becomes available, any idea of the timeline ??

most grateful,


Many thanks, I'll play over the weekend and make sure its a 100% test together with Eduard's answer.