I am not sure what you are trying to do, but I suppose this chapters.json
has an array of chapters.. and probabilly you are using this in one of your
routes and if the file doesn't exist it probabily means for you an empty
array.. So I am assuming a lot of things you haven't explained here, then
this might work for you:

try {
  app.set('chapters', require(__dirname + '/data/chapters.json'));
} catch(e) {
   console.log('there is no /data/chapters.json');
   app.set('chapters', []);
}






2013/1/29 Norman Khine <[email protected]>

>
>
> On Tuesday, January 29, 2013 7:12:45 PM UTC+1, Norman Khine wrote:
>>
>>
>>
>> On Tuesday, January 29, 2013 7:00:53 PM UTC+1, José F. Romaniello wrote:
>>>
>>> You can use 
>>> fs.existsSync<http://nodejs.org/api/fs.html#fs_fs_existssync_path>but I 
>>> have read in this list several times it is discouraged, what happen
>>> if the file is deleted from disk *after* you ask if it exists and *
>>> before* you require it.
>>>
>>
>> yes i changed to fs.existsSync
>>
>>>  You will be better with a try/catch.
>>>
>>
>> ok i understand, but how do i deal with the app.set('chapters',
>> require(__dirname + '/data/chapters.json')); if the file is not there in
>> the express route?
>>
>
> ok i got it
>
> app.set('translation', require(__dirname +
> '/public/locales/dev/translation.json'));
> try {
>   app.set('chapters', require(__dirname + '/data/chapters.json'));
> } catch(err) {
>   dumpError(err);
> }
>
> something like this?
>
>>
>>>
>>> 2013/1/29 Norman Khine <[email protected]>
>>>
>>>> i have this code:
>>>>
>>>> var blade = require('blade')
>>>>     ,express = require('express')
>>>>     ,http = require('http')
>>>>     ,https = require('https')
>>>>     ,fs = require('fs'),json;
>>>>
>>>> var GOOGLE_API_KEY = process.env.GOOGLE_API_KEY;
>>>>
>>>> var TABLE_ID = "**1epTUiUlv5NQK5x4sgdy1K47ACDTpH**H60hbng1qw";
>>>> //var TABLE_ID ="**1obpi0bmSDILX1cIQcVRNi1lUkm2K5**xBFztmRFiM"
>>>>
>>>> var GOOGLE_PATH = "/fusiontables/v1/query?sql=**
>>>> SELECT%20*%20FROM%20"+TABLE_**ID+"&key="+GOOGLE_API_KEY;
>>>> var GOOGLE_DRIVE_PATH = "/drive/v2/files/"+TABLE_ID+"?**
>>>> key="+GOOGLE_API_KEY;
>>>>
>>>> var options = {
>>>>     hostname: 'www.googleapis.com'
>>>>     ,port: 443
>>>>     ,method: 'GET'
>>>> };
>>>>
>>>> function TZMNetwork(fileId) {
>>>>     if (fs.existsSync("data/chapters.**json")) {
>>>>         // ... put code if "data/chapters.json" has changed!
>>>>         console.log('OK');
>>>>     } else {
>>>>         options["path"] = GOOGLE_PATH;
>>>>
>>>>         var file = fs.createWriteStream("data/**chapters.json");
>>>>         var req = https.request(options, function(res) {
>>>>           res.on('data', function(data) {
>>>>               file.write(data);
>>>>           }).on('end', function() {
>>>>               file.end();
>>>>               console.log("chapters.json created");
>>>>           });
>>>>         });
>>>>         req.end();
>>>>
>>>>         req.on('error', function(e) {
>>>>           console.error(e);
>>>>         });
>>>>     }
>>>> }
>>>>
>>>> var app = express();
>>>> app.use(blade.middleware(__**dirname + '/views') ); //for client-side
>>>> templates
>>>> app.use(express.favicon(__**dirname + '/public/images/favicon.ico'))**;
>>>> app.use(express.static(__**dirname + '/public') ); //maybe we have
>>>> some static files
>>>> app.set('views', __dirname + '/views'); //tells Express where our views
>>>> are stored
>>>> app.set('translation', require(__dirname + '/public/locales/dev/**
>>>> translation.json'));
>>>> app.set('chapters', require(__dirname + '/data/chapters.json'));
>>>> app.set('view engine', 'blade'); //Yes! Blade works with Express out of
>>>> the box!
>>>> app.get('/', function(req, res, next) {
>>>>     TZMNetwork(TABLE_ID);
>>>>     res.render('index');
>>>> });
>>>> app.listen(29080);
>>>> console.log('Server running at http://127.0.0.1:29080/');
>>>>
>>>>
>>>> How would you ensure that if /data/chapters.json does not exists, for
>>>> example when the app is run for the first time, the app.set('chapters',
>>>> require(__dirname + '/data/chapters.json')); is by-passed?
>>>>
>>>> Is there a better way to do this?
>>>>
>>>> --
>>>> --
>>>> Job Board: http://jobs.nodejs.org/
>>>> Posting guidelines: https://github.com/joyent/**node/wiki/Mailing-List-
>>>> **Posting-Guidelines<https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines>
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nodejs" group.
>>>> To post to this group, send email to [email protected]
>>>> To unsubscribe from this group, send email to
>>>> [email protected]
>>>> For more options, visit this group at
>>>> http://groups.google.com/**group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en>
>>>>
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nodejs" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> For more options, visit 
>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>>> .
>>>>
>>>>
>>>>
>>>
>>>  --
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nodejs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to