Vue and Node make a powerful and versatile team, but aside from the API — via Express for me — Vue doesn't talk to Node, or vice versa, and I had to fix that.
So there I was, building the front end, writing the code for a utilities mixin to store functions to handle common string and number operations. But then I realized that I had also written much the same code in a controller for Node.
What if I could use the same functions in Node and Vue?
So, first I created a file in Node that would contain the core functions I'd be using in the mixin in Vue:
// "utilities.js" in Node. let utilities = {} utilities.stripTags = (note, hellip = false) => { let removeHTML = note.replace(/(<([^>]+)>)/ig, "") let removeHTMLEntities = removeHTML.replace(/&#{0,1}[a-z0-9]+;/ig, "") let removeLineBreaks = removeHTMLEntities.replace(/\r?\n|\r/g, " ") let removeNonbreakingSpaces = removeLineBreaks.replace(/ /ig, " ") let removeEmojies = removeNonbreakingSpaces.replace(/[\u1000-\uFFFF]+/g, " ") let string = removeEmojies return (hellip) ? string.concat('…') : string } module.exports = utilities
… then, I returned to the mixin:
// "utilities.js" in Vue. 'use strict' // Core modules. import CoreUtilities from 'path_to/utilities' export const Utilities = { data () { return { // Reactive variables... } }, methods: { stripTags (note, hellip = false) { // Utilizing a method in core utilities. return CoreUtilities.stripTags(note, hellip) } } }
Now I have one definitive source of functions that both Vue and Node are able to access.
If anyone knows a more efficient method of replacing HTML, please share!
Top comments (0)