How to output JSON with swig in nodejs

5.8k views Asked by At

I tried json filter, but I get "json" filter not found error. What I'm I doing wrong?

Error: Filter "json" not found at Object.exports.wrapFilter (......./node_modules/swig/lib/helpers.js:310:11)
<script type="text/javascript">
        {{ places|json }}
</script>

object is passed from mongodb

this.displayMainPage = function(req, res, next) {
    "use strict";

    places.getPlaces(10, function(err, results) {
        "use strict";

        if (err) return next(err);

        return res.render('places_template', {
            places: results
        });
    });
}

Edit: I'm trying to output json to pass to google maps and display the same data in html

1

There are 1 answers

4
Jonathan Lonowski On BEST ANSWER

For versions of Swig prior to 1.0, the json filter was instead named json_encode:

{{ places|json_encode }}

And, for compatibility, 1.0 and later keep json_encode as an alias of json.


Though, you should also consider upgrading Swig:

$ npm install [email protected]
npm WARN deprecated [email protected]: v1.0.0 is a complete rewrite of Swig
from the ground up. Previous versions are no longer supported